dynamisk programmering tentafrågor

Dynamisk programmering är en algoritmteknik som används för att lösa komplexa problem genom att bryta ner dem i enklare delproblem. Denna FAQ innehåller viktiga tentafrågor och svar som hjälper studenter att förbereda sig för tentamen inom ämnet.

NewtAgnes5·52 tarjetas·52 preguntas·3 vistas
universitetcomputer_sciencealgorithms
0
Lo sé
1 / 52
0
Aprendiendo
Frente

Vad är dynamisk programmering?

Toca para voltear
Reverso

En metod för att lösa komplexa problem genom att bryta ner dem i enklare delproblem. Lagrar lösningar för att undvika upprepade beräkningar.

Toca para voltear
Lo sé
Aprendiendo

Quiz(52 preguntas)

Pregunta 1 de 52

1. Vad beskriver dynamisk programmering bäst?

Términos en este set(52)

Grundläggande begrepp(16)

Vad är dynamisk programmering?

En metod för att lösa komplexa problem genom att bryta ner dem i enklare delproblem. Lagrar lösningar för att undvika upprepade beräkningar.

Vilka typer av problem löser dynamisk programmering?

Optimaliseringsproblem och kombinatoriska problem, såsom sekvensalignering och resursallokering.

Fyll i luckan: Dynamisk programmering bygger på _____ och optimal delstruktur.

Memoization

Vad betyder optimal delstruktur?

Ett problem har optimal delstruktur om en optimal lösning kan konstrueras från optimala lösningar av dess delproblem.

Vad är memoization?

En teknik där resultatet av delproblem lagras för att undvika att beräkna dem igen, vilket sparar tid.

Sant eller falskt: Dynamisk programmering alltid kräver mer minne än en iterativ lösning.

Falskt. Dynamisk programmering kan ibland använda mindre minne genom att optimera hur data lagras.

Jämför top-down och bottom-up metoder.

Top-down: börjar med hela problemet och löser delproblem efter behov. Bottom-up: löser delproblem först och kombinerar dem.

Ge ett exempel på optimal substruktur.

I Fibonacci-serien: F(n)=F(n−1)+F(n−2)\displaystyle F(n) = F(n-1) + F(n-2) gäller att F(n)\displaystyle F(n) bygger på F(n−1)\displaystyle F(n-1) och F(n−2)\displaystyle F(n-2).

Vad är tidskomplexiteten för dynamisk programmering?

Ofta O(n*m), där n och m är storlekar på indata. Beror på problemets struktur.

Vad är ett tillstånd i dynamisk programmering?

En unik representation av delproblemen som används för att lagra och återanvända lösningar.

Fyll i luckan: Dynamisk programmering används ofta i _____ problem.

Optimerings- och sekvensproblem.

Vad är problemet med överlappande delproblem?

Delproblem som dyker upp flera gånger. Dynamisk programmering utnyttjar detta för att spara tid.

Ge exempel på en algoritm som använder dynamisk programmering.

Knapsack-problemet, där man maximerar värdet av föremål i en ryggsäck med begränsad vikt.

Vad är en rekursiv lösning?

En metod där problemet löses i termer av sig själv. Kan leda till ineffektivitet utan memoization.

Vad används ett beslutsträd till?

För att visualisera och analysera val och deras konsekvenser, ofta i dynamiska programmeringsproblem.

Vad innebär principen om optimal substruktur?

Optimal substruktur innebär att en optimal lösning av ett problem kan byggas upp av optimal lösningar av dess delproblem. Exempel: För att lösa ett kortaste vägen problem kan man kombinera kortaste vägarna mellan delmålen.

Vanliga algoritmer(12)

Vad är knapsackproblemet?

Ett optimeringsproblem där man maximerar värdet av objekt i en ryggsäck med begränsad kapacitet.

Sann eller falsk: Fibonacci-sekvensen använder dynamisk programmering.

Sann. Dynamisk programmering används för att effektivt beräkna Fibonacci-tal.

Vad är en typisk tillämpning av dynamisk programmering?

Lösning av problem som involverar delproblem, t.ex. sekvensalignering, knapsack, och kortaste vägen.

Fyll i blank: 0-1 knapsack maximerar _____ under en viktbegränsning.

värdet av objekt.

Jämför top-down och bottom-up metoder.

- Top-down: Rekursiv, memoization - Bottom-up: Iterativ, fyller tabeller

Hur beräknas Fibonacci-talen med dynamisk programmering?

Genom att lagra tidigare beräknade värden: F(n)=F(n−1)+F(n−2)\displaystyle F(n) = F(n-1) + F(n-2).

Vad är längsta gemensamma delmängd?

Ett problem som använder dynamisk programmering för att hitta den längsta gemensamma sekvensen mellan två strängar.

Ge ett exempel på knapsackproblemet.

Givet objekt med vikter och värden, välj objekt för att maximera värdet utan att överskrida viktgränsen.

Sann eller falsk: Dynamisk programmering kräver alltid fullständig information.

Falsk. Den kan ofta lösa problem med delvis information genom att bygga upp lösningen.

Vad är minsta kostnadsvägen?

Ett problem där man hittar den minsta kostnaden att nå en punkt i en graf.

Fyll i blank: Dynamisk programmering används för att lösa problem med _____ överlappande delproblem.

överlappande delproblem.

Jämför tidskomplexiteten för rekursiv och dynamisk lösning av Fibonacci.

- Rekursiv: O(2^n) - Dynamisk: O(n)

Problemlösningsstrategier(12)

Vad är delproblem i dynamisk programmering?

Delproblem är mindre versioner av det ursprungliga problemet. Lösning av dessa är nyckeln till att lösa det stora problemet.

Definiera optimal substruktur.

Optimal substruktur innebär att en optimal lösning av ett problem kan byggas upp av optimal lösning av dess delproblem.

Vad är överlappande delproblem?

Överlappande delproblem är när samma delproblem löses flera gånger i en beräkning. Dynamisk programmering utnyttjar detta för att spara beräkningstid.

Ge ett exempel på en strategi.

Memoisering - lagra resultat av delproblem för att undvika omberäkning.

Sant eller falskt: Dynamisk programmering är alltid snabbare än bruteforce.

Sant. Dynamisk programmering är effektivare eftersom den utnyttjar tidigare beräkningar.

Jämför topp-ned och botten-upp strategier.

Topp-ned: rekursiv med memoization. Botten-upp: iterativ, löser små delproblem först.

Fyll i tomrummet: DP används för att ______.

optimera lösningar av problem med överlappande delproblem.

Nämn en användning av dynamisk programmering.

Ruttoptimering: hitta den kortaste vägen i grafproblem.

Vad är en rekursiv formel?

En rekursiv formel definierar ett problem i termer av sig själv. Exempel: F(n)=F(n−1)+F(n−2)\displaystyle F(n) = F(n-1) + F(n-2) för Fibonacci.

Vad är grundprincipen för dynamisk programmering?

Att bryta ner ett problem i enklare delproblem och spara resultatet för framtida användning.

Beskriv tabellmetoden.

En metod för att organisera lösningar av delproblem i en tabell för snabb åtkomst och beräkning.

Ge ett exempel på ett delproblem.

I knapsack-problemet, beräkna maxvärdet av en delmängd av objekt med viktbegränsning.

Analys och optimering(12)

Vad menas med tidskomplexitet?

Tidskomplexitet beskriver hur mycket tid en algoritm tar att köra beroende på storleken på indata. Vanliga notationer är O(n), O(log n) och O(n^2).

Vad är rumskomplexitet?

Rumskomplexitet avser den mängd minne som en algoritm använder som funktion av indata. Det är viktigt för att förstå algoritmers effektivitet i minnesanvändning.

True or False: Dynamisk programmering alltid minimerar tidskomplexitet.

False. Dynamisk programmering kan minska tidskomplexiteten, men det kan öka rumskomplexiteten genom att lagra mellanresultat.

Jämför bruteforce och dynamisk programmering.

- Bruteforce: hög tidskomplexitet, låg rumskomplexitet. - Dynamisk programmering: lägre tidskomplexitet, högre rumskomplexitet.

Komplettera: Tidskomplexitet för Fibonacci med DP är _____.

O(n) jämfört med O(2^n) för rekursiv lösning.

Vad är memoization?

Memoization är en teknik där mellanresultat lagras för att undvika onödiga beräkningar. Detta förbättrar tidskomplexiteten i dynamiska programmeringslösningar.

Ge ett exempel på rumskomplexitet.

Exempel: En algoritm som lagrar alla delproblem i en array har rumskomplexitet O(n), där n är antalet delproblem.

Vad är en rekursiv relation?

En rekursiv relation definierar hur ett problem kan delas upp i mindre delproblem. Den är central i dynamisk programmering för att formulera lösningar.

Vad innebär optimal substruktur?

Optimal substruktur innebär att lösningen av ett problem kan konstrueras optimalt från lösningarna av sina delproblem. Det är en nyckelfunktion i dynamisk programmering.

Förklara top-down och bottom-up strategier.

Top-down: Rekursiv metod med memoization. Bottom-up: Iterativ metod som bygger lösningar från små delproblem uppåt.

Vad är gränsen för rumskomplexitet i DP?

Gränsen beror på antalet delproblem som lagras. I värsta fall kan det vara O(n) eller O(n*m) för tvådimensionella problem.

Ge ett exempel på optimering i DP.

Exempel: Att minimera kostnaden för att nå ett mål genom att lagra de lägsta kostnaderna för varje delproblem.

Preguntas en este set(52)

1. Vad beskriver dynamisk programmering bäst?

A.En teknik för att optimera lösningar genom återanvändning av delproblem
B.En metod för att lösa problem utan att lagra resultat
C.En algoritm för att sortera data
D.En typ av grafteori

2. Vad beskriver tidskomplexitet?

A.Hur lång tid en algoritm tar att köra i förhållande till indata
B.Hur mycket minne en algoritm använder
C.Antalet operationer som utförs av en algoritm
D.Hur många steg en algoritm består av

3. Vad beskriver ett delproblem inom dynamisk programmering?

A.En mindre version av det ursprungliga problemet.
B.En optimerad lösning av hela problemet.
C.En slumpmässig del av problemet.
D.En slutlig lösning utan delproblem.

4. Vad är det primära syftet med knapsackproblemet?

A.Maximera värdet av objekt med en viktgräns
B.Minimera vikten av valda objekt
C.Beräkna det genomsnittliga värdet av objekt
D.Maximera antalet objekt utan viktbegränsning

5. Vilket av följande är ett exempel på ett problem som kan lösas med dynamisk programmering?

A.Knapsack-problemet
B.Bubblesort
C.Binär sökning
D.DFS

6. Vilket av följande beskriver rumskomplexitet?

A.Mängden minne som används av en algoritm
B.Antalet steg en algoritm tar
C.Hastigheten på en algoritm
D.Antalet delproblem i en algoritm

7. Vad innebär begreppet optimal substruktur?

A.En lösning som inte kan delas upp.
B.En lösning som bygger på optimala delproblem.
C.En lösning utan någon struktur.
D.En lösning med flera delproblem.

8. Vilket problem kan inte lösas med dynamisk programmering?

A.Knapsackproblemet
B.Minsta kostnadsvägen
C.Fibonacci-sekvensen
D.Sortering av en lista

9. Vilket påstående om 'optimal delstruktur' är korrekt?

A.Det innebär att optimala lösningar kan byggas upp från delproblemens optimala lösningar
B.Det betyder att alla delproblem är oberoende av varandra
C.Det refererar till en algoritm utan återkommande lösningar
D.Det är synonymt med bruteforce-algoritmer

10. Vilken av följande metoder minskar tidskomplexiteten genom att lagra resultat?

A.Memoization
B.Bruteforce
C.Rekursiv funktion
D.Iterativ metod

11. Vilket av följande beskriver överlappande delproblem?

A.Delproblem som aldrig upprepas.
B.Delproblem som löses flera gånger i beräkningen.
C.Delproblem som inte är relaterade.
D.Delproblem som alltid är unika.

12. Vad är huvudskillnaden mellan top-down och bottom-up i dynamisk programmering?

A.Rekursiv vs. iterativ metod
B.Använder mer minne vs. mindre minne
C.Löser alltid det enklaste problemet först vs. det svåraste
D.Kräver alltid fullständig information vs. inte

13. Vad är memoization?

A.Lagring av resultat från delproblem för återanvändning
B.En typ av iterativ algoritm
C.En metod för att visualisera beslutsträd
D.En algoritm för sortering

14. Vilken strategi bygger lösningar från små delproblem uppåt?

A.Bottom-up
B.Top-down
C.Bruteforce
D.Greedy algoritm

15. Vilken metod används för att spara resultat av delproblem?

A.Bruteforce.
B.Memoisering.
C.Iteration.
D.Abstraktion.

16. Vad är en typisk tillämpning av minsta kostnadsvägen?

A.Hitta den snabbaste vägen i en vägkarta
B.Beräkna Fibonacci-tal
C.Maximera värdet i knapsackproblemet
D.Identifiera längsta gemensamma delmängd

17. Vilket av följande problem har INTE överlappande delproblem?

A.Fibonacci-serien
B.Största gemensamma delare
C.Knapsack-problemet
D.Sekvensalignering

18. Vilket utslag ger en rekursiv relation?

A.Hur ett problem kan delas upp i mindre problem
B.Tidskomplexiteten för en algoritm
C.Den rumskomplexitet som krävs
D.Effektiviteten hos en algoritm

19. Sant eller falskt: Dynamisk programmering kan vara långsammare än bruteforce.

A.Sant.
B.Falskt.
C.Endast i vissa fall.
D.Beroende på problemet.

20. Fyll i blank: Dynamisk programmering är effektiv för problem med _____ delproblem.

A.överlappande
B.unika
C.enkla
D.komplexa

21. Vilken strategi används i 'top-down'-metoden?

A.Lösa hela problemet först och dela upp det i delproblem
B.Börja med delproblem och kombinera dem för att lösa hela
C.Använda memoization direkt
D.Enbart iterera genom problemet

22. Vilket av följande är INTE en fördel med dynamisk programmering?

A.Minskad tidskomplexitet
B.Ökad rumskomplexitet
C.Enkel implementering av algoritmer
D.Lagring av mellanresultat

23. Vilken strategi är typisk för topp-ned lösningar?

A.Iterativ med memoization.
B.Rekursiv med memoization.
C.Bottens upp utan memoization.
D.Inga delproblem.

24. Sann eller falsk: Fibonacci-sekvensen använder alltid en rekursiv metod.

A.Sann
B.Falsk
C.Endast i vissa fall
D.Bara för stora n

25. Vilket av följande är en korrekt beskrivning av tidskomplexiteten för dynamisk programmering?

A.O(n*m), beroende på problemets struktur
B.O(n log n), alltid
C.O(2^n), för alla problem
D.O(n), alltid

26. Vad innebär optimal substruktur?

A.Lösningen kan konstrueras optimalt från delproblem
B.Det maximala minnesutrymmet för en algoritm
C.Antalet delproblem som kan skapas
D.Tidigare resultat lagras

27. Fyll i tomrummet: DP används för att ______.

A.förbättra bruteforce-algoritmer.
B.optimera lösningar av problem med överlappande delproblem.
C.bara lösa stora problem.
D.skapa nya algoritmer.

28. Vad är längsta gemensamma delmängd (LCS) i dynamisk programmering?

A.Maximala längden av två sekvenser som matchar
B.Kostnaden för att transformera en sträng till en annan
C.Antalet unika element i två strängar
D.Längden av den kortaste sekvensen

29. Vad används ett beslutsträd till?

A.För att analysera val och konsekvenser
B.Som en del av grafalgoritmer
C.För att lagra delproblem i dynamisk programmering
D.Som en sorts sökträd

30. Vad är syftet med memoization?

A.Att lagra mellanresultat för att förbättra effektiviteten
B.Att öka rumskomplexiteten
C.Att minska antalet delproblem
D.Att automatisera algoritmens val

31. Vilken av följande är en tillämpning av dynamisk programmering?

A.Sortering av data.
B.Ruttoptimering.
C.Kryptografi.
D.Statistik.

32. Vilken av följande metoder använder inte dynamisk programmering?

A.Memoization
B.Tabellmetod
C.Greedy algoritm
D.Rekursiv lösning

33. Vad är ett tillstånd i dynamisk programmering?

A.En unik representation av delproblem
B.En typ av algoritm
C.En specifik lösning
D.En del av datalagring

34. Vad är tidskomplexiteten för att beräkna Fibonacci med dynamisk programmering?

A.O(n)
B.O(2^n)
C.O(n log n)
D.O(n^2)

35. Vad är en rekursiv formel?

A.En formel som används för att skapa nya problem.
B.En formel som definierar ett problem i termer av sig själv.
C.En formel utan några variabler.
D.En slutlig lösning av ett problem.

36. Fyll i blank: För att beräkna Fibonacci-tal lagras tidigare värden i _____.

A.en tabell
B.en lista
C.en stack
D.ett träd

37. Vilket av följande påståenden är sant?

A.Dynamisk programmering kan använda mindre minne än vissa iterative lösningar
B.Dynamisk programmering är alltid långsammare än bruteforce
C.Dynamisk programmering kan inte användas för sekvensproblem
D.Dynamisk programmering kräver alltid mer tid

38. Vilken av följande är en nackdel med dynamisk programmering?

A.Ökad rumskomplexitet
B.Lägre tidskomplexitet
C.Enkelhet i implementering
D.Möjlighet att lösa komplexa problem

39. Vad är huvudprincipen bakom dynamisk programmering?

A.Att lösa alla problem på en gång.
B.Att använda slumpmässiga metoder.
C.Att bryta ner problem i enklare delproblem.
D.Att ignorera tidigare beräkningar.

40. Vilken av följande är en riktig tidskomplexitet för den rekursiva lösningen av Fibonacci?

A.O(n)
B.O(2^n)
C.O(n log n)
D.O(1)

41. Vilken av följande metoder är INTE en del av dynamisk programmering?

A.Bruteforce
B.Top-down
C.Bottom-up
D.Memoization

42. Vilken av följande metoder är en typ av dynamisk programmering?

A.Knapsack-problemet
B.Sökalgoritm
C.Sorteringsalgoritm
D.Binär sökning

43. Hur fungerar tabellmetoden inom dynamisk programmering?

A.Genom att ignorera delproblem.
B.Genom att organisera lösningar av delproblem i en tabell.
C.Genom att använda slumpmässiga data.
D.Genom att bara spara slutresultat.

44. Vad är syftet med memoization i dynamisk programmering?

A.Spara beräknade resultat för framtida användning
B.Öka minnesanvändning
C.Minska problemets storlek
D.Optimera sökprocessen

45. Vad innebär principen om optimal substruktur?

A.En optimal lösning bygger på optimala delproblem
B.Alla lösningar är oberoende av varandra
C.Ingen lösning kan återanvändas
D.Det finns alltid en enda optimal lösning

46. Vilken av följande faktorer påverkar rumskomplexiteten i DP?

A.Antalet delproblem som lagras
B.Tidskomplexiteten av algoritmen
C.Antalet operationer som utförs
D.Datatyper som används

47. Ge ett exempel på ett delproblem inom knapsack-problemet.

A.Att beräkna maxvikt av en enskild objekt.
B.Att beräkna maxvärdet av en delmängd av objekt med viktbegränsning.
C.Att hitta den minsta vikten av ett objekt.
D.Att sortera objekt efter värde.

48. Sann eller falsk: Dynamisk programmering är alltid mer effektiv än rekursiva metoder.

A.Sann
B.Falsk
C.Bara för stora problem
D.Beroende på problemet

49. Vilket av följande exempel illustrerar överlappande delproblem?

A.Fibonacci-serien
B.Primtalsfaktorisering
C.Sortering
D.Sökning

50. Vilken typ av problem löser dynamisk programmering bäst?

A.Optimeringsproblem
B.Enkel sökning
C.Sorteringsproblem
D.Dataanalys

51. Vilket av följande påståenden stämmer angående rekursiva lösningar?

A.De kan bli ineffektiva utan memoization
B.De är alltid mer effektiva än dynamisk programmering
C.De används endast i top-down metoder
D.De kräver inte någon typ av lagring

52. Vilken strategi beskriver 'bottom-up'-metoden?

A.Lösa delproblem först och kombinera dem
B.Börja med det övergripande problemet
C.Använda bruteforce för att lösa
D.Optimera med hjälp av beslutsträd

Sets relacionados

Crea tu propio set de estudio

Sube un PDF, pega tus notas o describe un tema – la IA genera tarjetas, quizzes y más en segundos.