Föreläsning 6 Flashcards

(5 cards)

1
Q

Vad innebär dynamic programming?

A

Problemet delas upp i delproblem, vars lösningar kan användas för att spara beräkningar senare.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad innebär pseudo-polynomial tidskomplexitet?

A

Tidskomplexiteten beror på en konstant multiplicerad med n, exempelvis O(n*W) där W är maxvikten i knapsack problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hur fungerar Bellman-Ford algoritmen? Vad är dess tidskomplexitet?

A

Bellman-Ford algoritmen används för att hitta den optimala vägen från en nod till alla andra i en graf genom dynamic programming. Bellman-Ford klarar av negativa kostnader i grafen.

  1. Välj en rotnod, och sett dess vikt till 0. Sätt alla andra noders vikt till +inf.
  2. För varje nod, se över dess kanters vikter och jämför vägens kostnad med den i tabellen
  3. Fortsätt tills ingen skillnad sker, eller vi når n-1 iterationer

Tidskomplexitet: O(m*n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hur görs sequence alignment (DNA exempelvis) mest effektivt?

A

Med dynamic programming, genom att sätta upp en NxM matris där N och M är mängden symboler i vardera sekvens

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hur kan man identifiera negativa cykler med Bellman-Ford algoritmen?

A

Låt algoritmen köra n-1 steg. Om du nu kör ännu ett steg och det resulterar i en updatering måste det finnas en negativ cykel i grafen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly