I datalogi siges et problem at have overlappende delproblemer, hvis problemet kan opdeles i delproblemer, som genbruges flere gange, eller en rekursiv algoritme for problemet løser det samme delproblem igen og igen i stedet for altid at generere nye underproblemer.
Hvad er optimal understruktur og overlappende underproblemer i dynamisk programmering?
Et problem har en optimal understrukturegenskab, hvis en optimal løsning af det givne problem kan opnås ved at bruge den optimale løsning af dets underproblemer. Dynamisk programmering udnytter denne egenskab til at finde en løsning.
Hvad er overlappende underproblem i dynamisk programmering?
1) Overlappende underproblemer:
Dynamisk programmering bruges hovedsageligt, når der er behov for løsninger af de samme underproblemer igen og igen. I dynamisk programmering gemmes beregnede løsninger på underproblemer i en tabel, så disse ikke skal genberegnes.
Hvad er forskellen mellem optimal understruktur og overlappende underproblemer?
Jeg forstår måltilgangen for begge metoder, hvor Optimal Substructure beregner den optimale løsning baseret på et input n, mens Overlapping Subproblems målretter mod alle løsningerne for inputområdet, f.eks. fra 1 til n. Til et problem som stangskæringsproblemet.
Hvilken af disse teknikker bruger overlapning af underproblemer?
Dynamisk programmering er en teknik til at løse problemer med overlappende underproblemer. Heri gemmer vi resultatet af delproblemet, der er løst én gang til fremtidig genbrug. Teknikken til at gemme underproblemløsninger kaldes memoisering.