Problema rucsacului lacom

Slides:



Advertisements
Similar presentations
Prof.Briciu Daniela Sc.cu cls. I-VIII Luna de Sus
Advertisements

Noua generaţie de clienţi. Noua generaţie de clienţi este aici.
În general exist ă 2 forme mari de conservare : “in situ” şi “ex situ” 1. Conservarea “ in situ” Aceast ă metod ă de conservare const ă în.
Present Perfect Continuous prezentare. schema Afirmativ: S + have/has + been + V-ing… Negativ: S + have/has + not + been + V-ing… Interogativ: have/has.
Cum vacanţa de iarna a fost s ă rac ă în z ă pad ă şi copiii nu prea au avut ce face pe afar ă, ne-am gândit s ă îi implic ă m în activit ă ţi pl ă.
Acum câteva zile, când mă plimbam pe Strada Vieţii am observat un magazin pe care era scris: “ Magazinul Raiului ”.
Un om a murit subit. Deodata L-a vazut pe Dumnezeu apropiindu-se de el, cu o valiza in mana si spunandu-i… Fiul meu, e timpul sa mergem… Omul L-a intrebat.
Mic îndreptar pentru formulari cotidiene în birou.
La terminarea încă a unui an, eu vreau să-ţi mulţumesc pentru tot ce am primit de la Tine.
-Modelul Entitate-Legatura (ER)-
Is It Safe To Buy Zoloft Online
Subinterogări multiple
Oracle Academy Lead Adjunct
Prof. Elena Răducanu, Colegiul Naţional Bănăţean,Timişoara
Probleme la metoda backtracking
Posibilităţi de analiză în timp real a parametrilor de calitate a apei cu ajutorul sistemului informatic de management SIVECO Business Analyzer September.
Mobile Apps Economy ZF Mobilio - Bucuresti, 24 aprilie 2012
SOFTWARE Tipuri de software.
IF Clause prezentare.
Cum foloseşti WordPress drept CMS?
Managementul serviciilor IT
Şomerul…..
Paxos Made Simple Autor: Puşcaş Radu George
Aparatura auxiliară Generalităţi, clasificare
Popiţiu Bogdan Epm An III
REZOLVAREA RELAŢIILOR MANY TO MANY
EFECTUL LASER.
METODA BACKTRACKING Examenul de bacalaureat 2012
ASIRA COMMUNICATION.
Programare vizuală.
Generarea modelelor fractale
MANAGEMENT EDUCAŢIONAL PERFORMANT Limbajul de programare Borland Pacal
Tipuri structurate Tipul tablou
SUBNETAREA.
C# şi platforma .NET.
Programarea şi rezolvarea problemelor
Modificarea structurii unei tabele
Curs 6: Introducere în programarea SAS
studiu de caz – adwords campanie servicii
DETERMINAREA ALCALINITATII SI PH-UL APELOR NATURALE
Future Simple prezentare.
Algoritm de crawling optimizat pe similaritate în documente HTML
SISTEME SIMD PROCESOARE MATICIALE PROCESOARE VECTORIALE
Funcții C/C++ continuare
Impulsul mecanic Impulsul mecanic. Teorema conservarii impulsului mecanic.
Sistem de monitorizare şi control prin Internet cu procesor ARM
AUTOMOBILUL ELECTRIC UNIVERSITATEA POLITEHNICA
SOAP Simple Object Access Protocol
PRELUCRARI SPECIFICE TABLOURILOR BIDIMENSIONALE
Eclipsele de soare si de luna
Universitatea POLITEHNICA din București - Curs de 16 ore – Curs 11
Îmbunătăţirea serviciilor publice prin intermediul Chartelor de Servicii: Elaborarea şi implementarea Planurilor de Acţiune pentru Îmbunătăţirea Serviciilor.
A great way to create a channel of communication
Functia de documentare
Căutarea şi regăsirea informaţiei
Raspunsul la frecventa
Administrarea reţelelor de calculatoare
ARBORI BINARI DE CĂUTARE
Programarea in limbajul Java 2004 Lecturer: Gavrila Cristian
Software open source in industria software
Aplicaţii specializate pentru realizarea unei prezentări – PowerPoint
Refracţia luminii.
Configurarea metodelor de management al calităţii în sectorul public
FACULTATEA DE INGINERIE ELECTRICA –Universitatea Politehnica Bucuresti
Cross Border Seminar (CBS) Euroguidance
- calitatea serviciului de internet -
Comisia blocajelor și neputința legiuitorului
Funcții NULL.
Comunicare in medii electronice
Despre lamaie.net De ce sunt lamaile acre? Realizatori: Cristina Cazan
Presentation transcript:

Problema rucsacului lacom

Enunţ capacitate, greutate și un numar de n Se dă un rucsac de o anumită capacitate, greutate și un numar de n obiecte specificandu-se masa obiectelor. Se cere un program care să determine variantă de introducere a obiectelor în rucsac astfel încât să încapă cât mai multe obiecte. Problema rucsacului

Exemplu 3kg 2kg 5kg 7kg 4kg N = 5; Greutatea disponibilă = 15 kg; 1 2 Obiect 1 2 3 4 5 Greutatea obiectelor 3kg 2kg 5kg 7kg 4kg Problema rucsacului

Metoda Greedy Propune o strategie de rezolvare a problemelor de optim în care se poate obţine optimul global prin alegeri succesive ale optimului local, ceea ce permite rezolvarea problemei fără a mai reveni la deciziile deja luate. Specificul acestei metode constă în faptul că se construiește soluția optimă pas cu pas, la fiecare pas fiind selectat în soluție elementul care pare "cel mai bun" la momentul respectiv, în speranța că această va duce către soluția optimă globală. Problema rucsacului

Sortarea obiectelor 7kg 5kg 2kg 4kg 3kg 1 2 3 4 5 Obiect Greutatea Problema rucsacului

Metoda Greedy: se iniţializează mulţimea soluţiilor (B) la mulţimea vidă (B=Φ) se consideră la fiecare pas câte un element x ∈ A; la fiecare pas se ia o decizie: dacă elementul x face parte din soluţia optimă, elementul este adăugat la mulțimea soluțiilor (B=B∪{x}). dacă elementul x considerat, împreună cu elementele ce fac parte din soluţia optimă parţială construită nu dă o soluţie posibilă, atunci x nu este adăugat la soluţia optimă. adăugarea elementului x la mulțimea soluțiilor se realizează fie prin luarea elementelor din A într-o ordine determinată care depinde de problemă, în ordine crescătoare; procedeul continuă astfel, repetitiv, până când au fost determinate toate elementele din mulţimea soluţiilor. Problema rucsacului

15 13 10 6 1 Greutatea disponibilă a rucsacului este: Obiect1 3 kg Obiect2 2 kg Obiect3 5 kg Obiect4 7 kg Obiect5 4kg Greutatea disponibilă a rucsacului este: 15 13 10 6 1 Greutatea obiectului este prea mare Problema rucsacului

Algoritm de rezolvare: Pas 1: Citirea greutății fiecarui obiect, Citirea capacității rucsacului. Pas 2: Iniţializăm obiectele. Pas 3: Se ordonează obiectele crescător în funcție de greutatea lor. Pas 4: Se inţializează volumul disponibil cu volumul obiectului. Pas5 : Se verifică dacă fiecare obiect încape în rucsac astfel: Dacă volumul obiectului e mai mic sau egal decât volumul disponibil al rucsacului atunci acesta încape în rucsac și din volumul disponibil al rucsacului scădem volumul obiectului. Pas 6: Dacă a rămas o zonă din rucsac neocupată atunci afişăm volumul rămas neocupat, în caz contrar înseamnă că nu am putut introduce nici un obiect în rucsac. Problema rucsacului

Implementare max_ob – numărul maxim de obiecte care pot fi puse în rucsac N - numărul de obiecte disponibile. v_dis - volumul rămas disponibil din rucsac. O - obiectele pe care vreau să le iau. Greutate - greutatea fiecarui obiect. Problema rucsacului

program rucsac; Var g:array [1..10] of integer; i,n,Gm,R, aux : integer; ok:boolean; begin writeln('nr obiecte'); readln(n); writeln(‘capacitate rucsac'); readln(R); writeln(' Obiectele de luat în rucsac:' ); for i:=1 to n do read (g[i]); Problema rucsacului

{ sortarea vectorului } ok:=false; while(ok=false) do begin ok:=true; for i:=1 to n-1 do if g[i]>g[i+1] then aux:=g[i]; g[i]:=g[i+1]; g[i+1]:=aux; end; Problema rucsacului

{ verifică dacă fiecare obiect încape în rucsac } writeln; for i:=1 to n do write( g[i], '*'); Gm:=0 ; i:=1; while ( Gm +g[i]<=R ) do begin Gm:=Gm+g[i]; i:=i+1; end; writeln('sunt‘ ,i-1,‘ obiecte cu greutate‘ , Gm,‘) ; writeln ( ‘ a ramas‘ , R-Gm,‘ loc liber‘ ) ; Problema rucsacului

Bibliografie: Nicolesco, Basarab, “ Transdisciplinaritatea”, Polirom, Iaşi, 2001, p.72. Mioara, Gheoghe, “ Elemente de programare”, Corint, București, 2003, p. 80 Problema rucsacului