160 likes | 367 Views
Rīgas Tehniskā universitāte Datorzinātnes un informācijas tehnoloģijas fakultāte Lietišķo datorsistēmu institūts , Lietišķo datorzinātņu katedra. Somas iepakošanas uzdevums. Mihails Prihodko, Daniels Umanovskis , Aleksejs Zaharovs I-DMD-01. 201 1 . gads. Ievads.
E N D
Rīgas Tehniskā universitāte Datorzinātnes un informācijas tehnoloģijas fakultāte Lietišķo datorsistēmu institūts, Lietišķo datorzinātņu katedra Somas iepakošanasuzdevums Mihails Prihodko, Daniels Umanovskis, Aleksejs Zaharovs I-DMD-01 2011. gads
Ievads • Somas iepakošanas uzdevums angl. knapsack problem, kriev. задача о рюкзаке pieder pie šādiem uzdevumu klasēm: • Kombinatoriskās optimizācijasuzdevums; • Maksimizēšanas uzdevums.
Klasiskā uzdevuma nostādne • Ir dots: • Priekšmetu kopa, kur katram priekšmetam ir definēta masa; • Mugursoma ar ierobežotu celtspēju; • Nepieciešams iepakot somu, maksimizējot priekšmetu skaitu; • Katrs priekšmets eksistē tikai vienā eksemplārā.
Zagļa problēma (risināta šajā darbā) • Ir dots: • Priekšmetu kopa, kur katram priekšmetam ir definēta masa+ naudas vērtība. • Mugursoma ar ierobežotu celtspēju; • Nepieciešams iepakot somu, maksimizējot kopējo naudas vērtību; • Katrs priekšmets eksistē tikai vienā eksemplārā.
Integrētā vide Vienotā vide algoritmu izpildei ir izveidotā Python valodā. Vide atbalsta divus pakošanas algoritmu pieslēgšanaspaņēmienus: • kā moduļu pirmkodu Python valodā, • kā nokompilētas Microsoft Windows dinamisko saišu bibliotēkas, DLL.
Studentu realizēti algoritmi Pakošanas problēmu var risināt ar vairākiem paņēmieniem. Šajā darbā tika realizētas šādas pieejas: • Ģenētiskais algoritms; • Zaru atciršanas algoritms; • ХЗ metode; • Ололо pieeja; • Meklēšana pēc pirmās labākās sakritības; • Dinamiskās programmēšanas pieeja.
Ģenētiskais algoritms (1/4) Pamatā ir šādi jēdzieni: • gēns– bitu virkne, raksturo indivīdu; • hromosoma – viens bits gēnā; • indivīds – kāds uzdevuma risinājums – iespējams vai neiespējams); • populācija – indivīdu kopa.
Ģenētiskais algoritms (2/4) • Tiek ģenerēta iespējamo risinājumu sākuma populācija. • Iteratīvi tiek veikta paaudžu maiņa: • Visi vēcāki tiek novērtēti ar heiristiskā novērtējuma funkciju; • Vecāku novērtēšana, klonēti divi labākie (1. un 2. vieta); • Tiek nejauši izvēlēts gēna sagriešanas punkts; • Krustošanas gaitā iegūta bērnu populācija. • Izvēlēts dārgākais risinājums no visiem atrastiem iespējamiem.
Ģenētiskais algoritms (3/4) Indivīda (risinājuma) heiristiskā novērtējuma pamatā ir naudas vērtība, heiristiskās funkcijas vērtība ir: • Ja risinājums naviespējams → naudas vērtība; • Ja risinājums iriespējams → naudas vērtības kvadrāts. Tas nodrošina, ka iespējamiem risinājumiem heiristiskā vērtība tiecas būt lielākā.
Ģenētiskais algoritms (4/4) • Ģenētisks algoritms negarantē optimālo risinājumu. Pamatā ir pietuvinātā heiristiskā novērtējuma funkcija. • Algoritmā ir ieliktā nejaušība, tāpēc algoritms var sniegt atšķirīgus risinājumus.
Zaru atciršanas algoritms (1/5) • Tiek uzbūvēts risinājumu koks; • Katrā koka virsotne ir uzdevuma risinājums; • Apriorineveiksmīgie risinājumu tiek atcirti (šajā realizācijā vispār netiek ielikti kokā); • Neiespējamo risinājumu izslēgšana ļauj iegūt priekšrocību salīdzinājumā ar visu variāciju apskatīšanu.
Zaru atciršanas algoritms (2/5) Koks ir būvēts pēc šāda principa: • Sākne ir visu iespējamu un neiespējamu risinājumu apgabals; • Starpvirsotnes ir risinājumu apakšapgabali; • Beigu virsotnes ir iespējamie risinājumi. • „?” nozīmē, ka risinājumu apgabalā ietilpst risinājumi, kur attiecīgais priekšmets gan ir gan nav ielikts; • „0” nozīme, ka priekšmets nav ielikts; • „1” nozīmē, ka priekšmets ir ielikts.
Zaru atciršanas algoritms (4/5) Koka apstaigāšana notiek šādi: • Kā sākumpunkts, nodod koka sākni; • Tiek izmantota rekursīva funkcija, kura atgriež dārgāko risinājumu, kurš eksistē apakškokā; • Tiek izmantots fakts, ka apstaigāt virsotni tas ir apstaigāt pašu virsotni un tās tiešus pēctečus; • Notiek pārmeklēšana dziļumā; • Atcirstie apgabali netiek ģenerēti.
Zaru atciršanas algoritms (5/5) • Algoritms sniedz garantēti optimālo risinājumu, jo pārmeklē visus iespējamus risinājumus un atrod dārgāko; • Pie lielā pieejamu priekšmetu skaita stāvokļu telpa kļūst liela.