Documente Academic
Documente Profesional
Documente Cultură
Exemplele de mai sus sînt probleme tipice, enunțurile lor pot fi întîlnite ca atare sau cu
diverse variațiuni.
Ambii algoritmi au fost studiați anterior, în cadrul discuției despre grafuri de tip arbore.
2. Problema rucsacului.
Dacă obiectele transportate pot fi fracționate, problema este numită continuă. În acest caz se
va utiliza întotdeauna întreaga capacitate de transport.
Dacă obiectele nu pot fi fracționate, problema este numită întreagă. În acest caz e posibil ca
soluția obținută să nu utilizeze întreaga capacitate de transport. De asemenea, soluția obținută poate să
nu fie optimă. În plus, e posibil să existe o soluție de utilizare a întregii capacități de transport, dar
aceasta să nu fie găsită prin algoritm de tip greedy.
Se dă un număr de vectori, fiecare fiind sortat crescător. Vectorii trebuie interclasați astfel
încît să se efectueze cît mai puține mișcări de elemente.
4. Suma maximă.
Se dă o mulțime de elemente reale A={ a1 , a2 , … , an , }. Se cere să se determine o submulțime
S ⊆ A astfel încît suma elementelor submulțimii S să fie cea mai mare posibilă.
Se cere să se plătească o sumă S ∈ N folosind cît mai puține bancnote din tipurile (valorile)
b i , i=1 , n, știind că printre acestea se află și bancnota cu valoare unitate. Sînt disponibile cantități
nelimitate din fiecare tip de bancnotă.
Dacă bancnota cu valoare unitate nu ar fi disponibilă, nu e sigură obținerea unei soluții prin
utilizarea metodei optimului local. Alt algoritm poate conduce la o soluție.
6. Problema paznicului.
Se dă o livadă în care pomii sînt plasați pe m linii, cîten pe fiecare linie. Distanțele între pomii
adiacenți sînt egale atît pe linie cît și între linii. În una din cele m× n poziții se află un paznic, care
poate vedea pomii pe orice direcție, dar dacă mai mulți pomi se află pe exact aceeași direcție îl vede
doar pe cel mai apropiat. Se cere să se determine
7. Produs de transpoziții.
a) oarecare;
b) de forma ( 1 ,i ) .
8. Algoritmul Dijkstra.
Algoritmul Dijkstra pentru găsirea celor mai scurte drumuri într-un graf, pornind de la un vîrf
dat a fost studiat în cadrul discuției despre grafuri.
Exemple de problem care se rezolvă prin metoda backtracking:
Se cere să se așeze 8 regine pe o tablă de șah astfel încît să nu existe regine care se atacă. Să
se găsească toate posibilitățile de așezare a damelor. Problema se poate extinde la n regine, pe o tablă
de dimensiuni n × n.
În jurul unei mese rotunde sînt așezați n cavaleri. La un moment dat izbucnesc conflicte între
vecini. Se cere să se așeze cavalerii la masă astfel încît între oricare doi vecini din așezarea inițială să
existe 1 sau două alte persoane.
Fie n tipuri de bancnote, cu valorile nominale t i , i=1 , n. Din fiecare tip este disponibilă
cantitatea nr i , i=1 ,n . Să se determine toate modalitățile în care se poate plăti o sumă S folosind
aceste bancnote.
4. Generarea permutărilor
5. Generarea aranjamentelor
6. Generarea combinărilor
Să se genereze toate combinările dintr-o mulțime cu n elemente, luate cîte k .