I problemi dello zaino sono facilmente risolti dalla programmazione dinamica. La programmazione dinamica viene eseguita in tempo polinomiale; è per questo che lo facciamo, giusto? Ho letto che in realtà è un problema NP completo, il che significherebbe che risolvere il problema nel problema polinomiale è probabilmente impossibile. Dov'è il …
Ho usato più volte la tecnica della programmazione dinamica, ma oggi un amico mi ha chiesto come definire i miei sotto-problemi, ho capito che non avevo modo di fornire una risposta formale obiettiva. Come definisci formalmente un sotto-problema per un problema che risolveresti usando la programmazione dinamica?
Esiste una differenza fondamentale tra la programmazione dinamica top-down e bottom-up? In particolare, esiste un problema che può essere risolto dal basso verso l'alto ma non dall'alto verso il basso? Oppure l'approccio bottom-up è solo una svolta della ricorrenza nell'approccio top-down?
Scusa in anticipo se questa domanda sembra stupida ... Per quanto ne so, la creazione di un algoritmo utilizzando la programmazione dinamica funziona in questo modo: esprimere il problema come relazione di ricorrenza; attuare la relazione di ricorrenza tramite memoizzazione o un approccio dal basso verso l'alto. Per quanto ne …
Ho lavorato sulla programmazione dinamica per qualche tempo. Il modo canonico per valutare una ricorsione di programmazione dinamica consiste nel creare una tabella di tutti i valori necessari e compilarla riga per riga. Vedi ad esempio Cormen, Leiserson et al: "Introduzione agli algoritmi" per un'introduzione. Mi concentro sullo schema di …
Stavo leggendo sulla programmazione dinamica quando mi sono imbattuto nella seguente citazione Un algoritmo di programmazione dinamica esaminerà tutti i modi possibili per risolvere il problema e sceglierà la soluzione migliore. Pertanto, possiamo approssimativamente pensare alla programmazione dinamica come a un metodo intelligente e a forza bruta che ci consente …
Ho fatto questa domanda su StackOverflow , ma penso che qui sia un posto più appropriato. Questo è un problema dall'introduzione al corso sugli algoritmi : Hai una matrice aaa con nnn numeri interi positivi (la matrice non deve essere ordinata o gli elementi univoci). Suggerisci un algoritmo O(n)O(n)O(n) per …
Ho lavorato al seguente problema di questo libro . Un certo linguaggio di elaborazione delle stringhe offre un'operazione primitiva che divide una stringa in due parti. Poiché questa operazione comporta la copia della stringa originale, sono necessarie n unità di tempo per una stringa di lunghezza n, indipendentemente dalla posizione …
Nell'Introduzione agli algoritmi di Cormen et al. , La sezione 15.3 Elementi di programmazione dinamica spiega la memoizzazione come segue: Un algoritmo ricorsivo memorizzato mantiene una voce in una tabella per la soluzione di ciascun sottoproblema. Ogni voce della tabella contiene inizialmente un valore speciale per indicare che la voce …
La programmazione dinamica può ridurre il tempo necessario per eseguire un algoritmo ricorsivo. So che la programmazione dinamica può aiutare a ridurre la complessità temporale degli algoritmi. Le condizioni generali sono tali che se soddisfatte da un algoritmo ricorsivo implicherebbe che l'uso della programmazione dinamica ridurrà la complessità temporale dell'algoritmo? …
Se ho due matrici e B , rispettivamente di dimensioni 1000 × 2 e 2 × 1000 , e voglio calcolare ( A B ) 5000 , è più efficiente riscrivere prima l'espressione come A ( B A ) 4999 B e solo allora valutare numericamente, perché A B è …
Dato due stringhe , scriviamo per la loro concatenazione. Data una stringa e intero , scriviamo per la concatenazione di copie di . Ora data una stringa, possiamo usare questa notazione per 'comprimerla', cioè può essere scritto come . Chiamiamo il peso di una compressione il numero di caratteri che …
Come affronteresti il problema dello zaino in una situazione di programmazione dinamica se ora dovessi limitare il numero di articoli nello zaino di una costante ? Questo è lo stesso problema (peso massimo di , ogni articolo ha un valore e peso ) ma è possibile aggiungere solo articoli allo …
Programmazione dinamica con un gran numero di sottoproblemi. Quindi sto cercando di risolvere questo problema da Interview Street: Grid Walking (segna 50 punti) Ti trovi in una griglia dimensionale in posizione . Le dimensioni della griglia sono ). In un passo, puoi camminare un passo avanti o indietro in una …
Considera la seguente dichiarazione del problema: Dato un numero iniziale, tu e il tuo amico vi alternate per sottrarre un quadrato perfetto da esso. Vince il primo a raggiungere lo zero. Per esempio: Stato iniziale: 37 Il giocatore 1 sottrae 16. Stato: 21 Player2 sottrae 8. Stato: 13 Il giocatore …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.