Documente Academic
Documente Profesional
Documente Cultură
12 - Greedy, Backtracking
12 - Greedy, Backtracking
?
Greedy
Backtracking
Spaiul soluiilor
Fie mulimile ,
, o relaie de ordine pe
spaiul soluiilor
funcie de validare
Este folosit atunci cnd gsirea celei mai bune soluii este prea
costisitoare
acceptabil.
Cum se verific
acceptabilitatea elementului
candidat?
Variant:
verific dac este soluie parial acceptabil prelucrare
iniial a mulimii
dac da, adaug la mulimea :
A (sortare)
se trimite mulimea ca soluie
Problema rucsacului
ntreag
continu
Enun
uri complete
Plata unei sume (cu
bancnot
unitate)
Problema paznicului
Algoritmul Dijkstra
n manual
Backtracking cutare
complet
lent, costisitoare, complexitate mare
Metod
,,
- condiii de continuare
se trece la elementul
altfel se alege alt valoare pentru
valoarea aleas pentru e consumat mulimea valorilor consumate
dac nu mai snt valori disponibile se revine la elementul anterior
nu garanteaz obinerea unei soluii rezultat
Backtracking - reprezentare
date
ie curent
Configura
Configuraie iniial
Configuraie soluie
Configuraie final
Rezolvare problem:
Backtracking - operaii
i avanseaz
Atribuie
ncercare euat
Revenire
//construire
configuraie iniial
ct timp
//ct timp configuraia nu e final
dac
//configuraie de tip soluie?
reine soluia
altfel
Backtracking variant
Particularit
i ale unor
probleme
//primul element
minus
raia, de multe ori 0=1-1
ct timp
//variabila
de impas
- progresii
aritmetice
cu valoarea iniial , raia i valoarea final
ct timp i
uneori , //alegerea unei noi valori pentru
altfel
dac
Avantaje
dac
condimemorate
ii_finale
(x)mulimile
//configura
ie soluie?
nu trebuie
explicit
i
reine_solu
ia
alegerea
unui element
neconsumat este uoar
altfel
//avans
Backtracking - implementare
recursiv
Backtracking
,,
Condiie de continuare
Regina plasat,
Condiie final
nu e necesar
Spor la nvat!