Programmazione Dinamica
Salve,
Sono alla prese con la Programmazione Dinamica, dal mio lato, lato di studente informatico, la programmazione dinamica è in sintesi una metodologia per risolvere problemi, suddividendo il problema generale in problemi più piccoli....Basata su Sottoproblemi sovrapponibili, Sottostrutture ottimali e Memoizzazione..
Ora vorrei, devo studiarla da un lato matematico, quindi utilizzando i concetti:
Stadi
Stato
Politica
Insieme di decisioni
Relazioni ricorrenti e le relative tabelle.
ecc
Da un punto di vista teorico ho le cose abbastanza chiare, ma non sono capace di applicarle.. mi date una mano?
Devo fare La sequenza di Fibonacci e il problema dello zaino 0-1!
Sono alla prese con la Programmazione Dinamica, dal mio lato, lato di studente informatico, la programmazione dinamica è in sintesi una metodologia per risolvere problemi, suddividendo il problema generale in problemi più piccoli....Basata su Sottoproblemi sovrapponibili, Sottostrutture ottimali e Memoizzazione..
Ora vorrei, devo studiarla da un lato matematico, quindi utilizzando i concetti:
Stadi
Stato
Politica
Insieme di decisioni
Relazioni ricorrenti e le relative tabelle.
ecc
Da un punto di vista teorico ho le cose abbastanza chiare, ma non sono capace di applicarle.. mi date una mano?
Devo fare La sequenza di Fibonacci e il problema dello zaino 0-1!
Risposte
La successione di Fibonacci è un argomento trattato nella sua opera "Liber Abaci", il cui scopo era quello di trasmettere le regole di calcolo note agli arabi al mondo occidentale. Fibonacci scopri questo metodo, per calcolare la riproduzione dei conigli e il loro numero in modo semplice e veloce.
La sequenza di Fibonacci presenta le seguenti proprietà (che dovranno da te essere implementate con degli algoritmi nel linguaggio di programmazione):
1) La somma di due numeri contigui forma il successivo numero della sequenza (ad esempio 3+5=8; 5+8=13; 13+8=21, quindi i numeri sono: 3,5,8,13,21...)
2) Il rapporto tra due termini successivi si tende a 0,618
3) Il rapporto tra un numero e il suo precedente tende a 1,618 (indicato con la lettera greca PHI e chiamato "rapporto aureo")
4) Il rapporto di un numero per il secondo che lo precede è sempre pari e tende a 2,618, che è il quadrato del rapporto aureo.
Ci sono altre proprietà ma le principali sono queste... se ti interessa c'è anche un metodo di fibonacci chiamato "Metodo della regula falsi" per risolvere una qualsiasi equazione non lineare. Ciao.
La sequenza di Fibonacci presenta le seguenti proprietà (che dovranno da te essere implementate con degli algoritmi nel linguaggio di programmazione):
1) La somma di due numeri contigui forma il successivo numero della sequenza (ad esempio 3+5=8; 5+8=13; 13+8=21, quindi i numeri sono: 3,5,8,13,21...)
2) Il rapporto tra due termini successivi si tende a 0,618
3) Il rapporto tra un numero e il suo precedente tende a 1,618 (indicato con la lettera greca PHI e chiamato "rapporto aureo")
4) Il rapporto di un numero per il secondo che lo precede è sempre pari e tende a 2,618, che è il quadrato del rapporto aureo.
Ci sono altre proprietà ma le principali sono queste... se ti interessa c'è anche un metodo di fibonacci chiamato "Metodo della regula falsi" per risolvere una qualsiasi equazione non lineare. Ciao.
Ciao
Ho studiato la successione di Fibonacci! so come funziona, probabilmente mi sono espresso male, non devo programmare o implementare nulla!
DEvo risolvere il problema della successione con la Programmazione Dinamica,
La programmazione dinamica non ha nulla a che vedere con un linguaggio di programmazione ma è un sotto insieme della ricerca operativa....
Hai presente "Trovare l'ottimo?"
Ho studiato la successione di Fibonacci! so come funziona, probabilmente mi sono espresso male, non devo programmare o implementare nulla!
DEvo risolvere il problema della successione con la Programmazione Dinamica,
La programmazione dinamica non ha nulla a che vedere con un linguaggio di programmazione ma è un sotto insieme della ricerca operativa....
Hai presente "Trovare l'ottimo?"
...
grazi
Ho anche già letto wikipedia. li si trova la versione informatica devo fare la versione matematica... ora provo a postare nel forum universitario...
Lo posso fare?
è corretto?
Ho anche già letto wikipedia. li si trova la versione informatica devo fare la versione matematica... ora provo a postare nel forum universitario...
Lo posso fare?
è corretto?
Per via di un errore che ho fatto, questo thread era finito laddove solo un amministratore lo poteva spostare.
Ora che si trova al posto giusto, cancello l'altro thread che aveva aperto ybor4 e metto un link a qui dalla sezione originaria (Informatica).
Ora che si trova al posto giusto, cancello l'altro thread che aveva aperto ybor4 e metto un link a qui dalla sezione originaria (Informatica).
ok!
Ma nessuno sa darmi una mano?
Ma nessuno sa darmi una mano?
ti consiglio di postare nella sezione matematica.
[size=75]NB: e' gia' stato postato nella sezione Universita'. Appare il link li' e in quella originaria come rimando. Ciao Fioravante Patrone, MOD[/size]
[size=75]NB: e' gia' stato postato nella sezione Universita'. Appare il link li' e in quella originaria come rimando. Ciao Fioravante Patrone, MOD[/size]
Vediamo se ho capito:
La successione di Fibonacci ha come formula per calcolarla una formula ricorsiva del tipo:
$a_n=a_{n-1}+a_{n-2}$
$a_0 = a_1 =1$
ma questa non risulta essere una formula computabile semplice se n è molto grande... la formulazione chiusa (detta formula di Binet) invece è:
$a_n=1/sqrt(5) *[((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n]$
Che risulta ottima nel senso di computabilità.
Può essere la risposta che cercavi?
La successione di Fibonacci ha come formula per calcolarla una formula ricorsiva del tipo:
$a_n=a_{n-1}+a_{n-2}$
$a_0 = a_1 =1$
ma questa non risulta essere una formula computabile semplice se n è molto grande... la formulazione chiusa (detta formula di Binet) invece è:
$a_n=1/sqrt(5) *[((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n]$
Che risulta ottima nel senso di computabilità.
Può essere la risposta che cercavi?
"Lord K":
Vediamo se ho capito:
La successione di Fibonacci ha come formula per calcolarla una formula ricorsiva del tipo:
$a_n=a_{n-1}+a_{n-2}$
$a_0 = a_1 =1$
ma questa non risulta essere una formula computabile semplice se n è molto grande... la formulazione chiusa (detta formula di Binet) invece è:
$a_n=1/sqrt(5) *[((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n]$
Che risulta ottima nel senso di computabilità.
Può essere la risposta che cercavi?
Si potrebbe usare la matrice Q di fibonacci...
$Q = ((1,1),(1,0))$
$Q^n = ((F_(n+1),F_n),(F_n,F_(n-1)))$
dove F_n è l'ennesimo termine della serie di fibonacci...
utilizzando la matrice potrei suddividere la sequenza in n stadi.... è un inizio
Nessuno è pratico di ricerca operativa ? e quindi di programmazione dinamica?

Nessuno è pratico di ricerca operativa ? e quindi di programmazione dinamica?
Non c'è modo di allegare del materiale cosi vi do un idea di cosa sia la programmazione dinamica?