Sunteți pe pagina 1din 2

Proiectarea Algoritmilor 2011-2012

Proiectarea Algoritmilor 2011-2012


Laborator 2-3 - Aplicaii de laborator

Greedy & Programare Dinamica


Laborator 2 1. Problema rucsacului (varianta continu) [2 pct]
Un camion poate transporta T tone de material. Exist n tipuri de materiale disponibile, fiecare caracterizat de greutatea Gi disponibila i de valoarea Vi adus de transportarea sa. S se decid ce cantiti din fiecare material vor fi transportate pentru a aduce o valoare maxim.

2. Descompunerea numerelor raionale n fracii egiptene [2 pct]


O fracie egiptean este o fracie ireductibil scris ca sum de fracii unitare (1/n). Scriei un algoritm care realizeaz automat aceast descompunere, ntr-o manier eficient din punctul de vedere al timpului de execuie. Hint: algoritmul lui Fibonacci

3. Selecia activitilor [3 pct]


Trudi este un robot foarte contiincios, dar are programul foarte ncrcat i trebuie s-i fac ordine n activiti (din pcate are o arhitectur mai veche, fiind single-tasking). Astfel, pentru o mulime S de taskuri definite printr-un timp de start i unul de finish, scriei un algoritm optim care selecteaz un numr maxim de taskuri care nu se suprapun i pe care Trudi s le execute.

4. Problema rucsacului (varianta discreta) [3 pct]


Un camion poate transporta T tone de mobil. Exist n piese de mobil, fiecare caracterizat de greutatea Gi i de valoarea Vi adus de transportarea sa. S se decid ce piese de mobil vor fi transportate pentru a aduce o valoare maxim.

Proiectarea Algoritmilor 2011-2012

Laborator 3 5. Parantezarea unei expresii booleene [3 pct]


Fiind dat o expresie boolean exprimat prin stringurile true, false, and, or, xor, identificai numrul de parantezri complete (moduri n care se pot aeza paranteze astfel nct rezultatul final s fie true). Spre exemplu, pentru expresia:
true and false xor true

exist dou modaliti de parantezare astfel nct rezultatul s fie true.

6. nmulirea optim a unui lan de matrici [2 pct]


ntruct nmulirea de matrici este asociativ, determinai modul optim de realizare al nmulirilor unui ir A1An de matrici astfel nct complexitatea nmulirilor s fie minima. Ex. Fie A1 - 10 30; A2 - 30 5; A3 - 5 60: (A1 X A2) X A3 = (10305) + (10560) = 1500 + 3000 = 4500 operaii A1 X (A2 X A3) = (30560) + (103060) = 9000 + 18000 = 27000 operaii

7. Word wrapping [5 pct]


O problem clasic a editoarelor de text este facilitatea de text wrapping. Textul este considerat un vector de N cuvinte word[1..N], iar lungimea unui rand este L. Pentru ambele variante este necesar s afiai textul formatat. Primul lucru pe care trebuie sa-l implementai este abordarea Greedy utilizat n majoritatea editoarelor (MS Words, suita Open Office). [2 pct] Acum c avem o versiune etalon, ne dorim s mbunim aspectul su estetic prin utilizarea unei funcii de cost mai restrictive i anume ptratul numrului de spaii libere rmase la sfritul fiecrei linii. Implementai aceast logic utilizat n TeX pentru a rafina designul unui control de tip TextArea. [3 pct] Ex. Fie textul iniial aaa bb cc ddddd i diminesiunea rndului 6. O abordare Greedy clasic ar ntoarce urmtorul rezultat:
aaa bb cc ddddd Spaii: Spaii: Spaii: cost1 = 0 4 1 5 (cost1 = 0 cost2 = 0) (cost1 = 4 cost2 = 16) (cost1 = 1 cost2 = 1) cost2 = 17

dar versiunea cu un aspect estetic mbuntit ar trebui s ntoarc urmtorul rezultat:


aaa bb cc ddddd Spaii: Spaii: Spaii: cost1 = 3 1 1 5 (cost1 = 3 cost2 = 9) (cost1 = 1 cost2 = 1) (cost1 = 1 cost2 = 1) cost2 = 11