INFO Savaria'2005 Szlávi Péter ELTE IK

Slides:



Advertisements
Hasonló előadás
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Advertisements

TÖMÖRÍTÉS. Fogalma A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő. A tömörítési arány függ a fájl típusától,
TÖRTÉNELEM ÉRETTSÉGI A VIZSGA LEÍRÁSA VÁLTOZÁSOK január 1-től.
 Alap tudnivalók Alap tudnivalók  Az If és a While folyamatábrák Az If és a While folyamatábrák  Probléma Probléma  A while ciklus (általános alak,
1 Az önértékelés mint projekt 6. előadás 1 2 Az előadás tartalmi elemei  A projekt fogalma  A projektek elemei  A projekt szervezete  Projektfázisok.
BINARIT TIMESHEET Több, mint munkaidő nyilvántartás Virág Zsolt (BINARIT Informatikai Kft.)„Hogyan legyek milliomos?” konferencia – BKIK ( )
Vetésforgó tervezése és kivitelezése. Vetésforgó Vetésterv növényi sorrend kialakításához őszi búza250 ha őszi árpa50 ha lucerna ebből új telepítés 300.
A három lépcsőfok… 29% - A megoldás 52 heti stratégia sikeres üzleti kapcsolatépítéshez (Avidor András - Michelle R. Donovan - Ivan R. Misner) Az emberek.
BEST-INVEST Független Biztosításközvetítő Kft.. Összes biztosítási díjbevétel 2004 (600 Mrd Ft)
Póker.
EGÉSZSÉGES TÁPLÁLKOZÁS
A szerkezetátalakítási programban bekövetkezett változások
Adattárház fejlesztés módszertani tapasztalatok a HIFI-ben
Valószínűségi kísérletek
Adatbázis normalizálás
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Becslés gyakorlat november 3.
Értékpapír-piaci egyenes
Microsoft Office Publisher

Befektetések II. Dr. Ormos Mihály, Befektetések.
Kockázat és megbízhatóság
CSOPORT - A minőségellenőrök egy megfelelő csoportja
Algoritmusok és Adatszerkezetek I.
Colorianne Reinforce-B
Az Országos Egészségfejlesztési Intézet fejlesztési projektjei az iskolai egészségfejlesztés területén DR. TÖRÖK KRISZTINA.
Monte Carlo integrálás
Newcomb-paradoxon Előttünk van két doboz, A és B. Ezekbe egy nagyon megbízható jövendőmondó helyezett el pénzt, amihez úgy juthatunk, ha mind a két dobozt.
A mozgási elektromágneses indukció
Gazdaságstatisztika Korreláció- és regressziószámítás II.
Adatbázis-kezelés (PL/SQL)
2. Bevezetés A programozásba
dr. Jeney László egyetemi adjunktus Európa regionális földrajza
Közigazgatási alapvizsga a Probono rendszerben
Kvantitatív módszerek
Business Mathematics
Algoritmusok és Adatszerkezetek I.
Körmendi Dániel MAS Meeting Scheduler.
Algoritmusok és Adatszerkezetek I.
Természettudományi kiselőadás címe
Teljes visszalépéses elemzés
Bemutatkozik az iskolapszichológus
Tilk Bence Konzulens: Dr. Horváth Gábor
AVL fák.
A villamos installáció problémái a tűzvédelem szempontjából
Online jegyzőkönyv kitöltési segédlet
Környezeti Kontrolling
Új pályainformációs eszközök - filmek
A csoportok tanulása, mint a szervezeti tanulás alapja
A Microsoft SharePoint testreszabása Online webhely
Szerzője Konzulens neve
Tájékoztatás a évi Országos Statisztikai Adatfelvételi Program (OSAP) teljesüléséről az Országos Statisztikai Tanács és a Nemzeti Statisztikai Koordinációs.
A kutatási projekt címe Név Oktató neve Tanulmányi intézmény neve
További rendező és kereső algoritmusok
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Konzuli és Állampolgársági Főosztály, Schengeni Vízum Osztály
MIÉRT ÉRDEMES HOZZÁNK JÖNNÖD?
Binomiális fák elmélete
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Tájékoztató az EPER pályázati folyamatáról
Áramlástan mérés beszámoló előadás
Edényrendezés - RADIX „vissza” - bináris számokra
A geometriai transzformációk
Háttértárak Merevlemezek.
Pszichológia BA műhelymunka és szakdolgozat tájékoztató
Algoritmusok.
AZ ORSZÁGOS KOMPETENCIAMÉRÉSEK MEGSZERVEZÉSE A TANODÁBAN
Háttértárak Merevlemezek.
A tehetséggondozás kihívásai
Előadás másolata:

INFO Savaria'2005 Szlávi Péter ELTE IK szlavip@elte.hu 2005. április Mohó algoritmusok Szlávi Péter ELTE IK szlavip@elte.hu Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Megpróbáltatások „A mohóság dicsérete” – bevezetés INFO Savaria'2005 Megpróbáltatások 2005. április „A mohóság dicsérete” – bevezetés Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” Első példázat a „zenekar”-ról Második példázat a „fényképeszkedés”-ről Harmadik példázat a „ültetés”-ről Konklúzió?  Komolytalan befejezés, ha még nem lenne elég a jókedv Kezelés: az oldalsó képre kattintva az előzőleg látott diához vissza, a bal-alsó sarokhoz közeli házikó fölé véve az egérkurzort: s tartalomjegyzékre… 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

„A mohóság dicsérete” – bevezetés INFO Savaria'2005 „A mohóság dicsérete” – bevezetés 2005. április Optimalizációs problémák A „hagyományos” kereső módsze-rek (sőt: a backtrack és a dinamikus prog-ramozás is) hosszadalmasak Válasszuk mindig a legjobbnak tetszőt (a lokális optimumot) Lehet, hogy ez globális optimum? Be kell látni! egy kis kalandozás a Carpe diem! nyomán 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Egy esemény-kiválasztási feladat Bemenet: E={1..n} esemény egy erőforrásért Minden esemény ideje: [ki,vi) i,j kompatibilisek  [ki,vi)[kj,vj)= Kimenet: M={e1,e2…eDb} eiE M maximális elemszámú ei-k páronként kompatibilisek k:kezdet, v:vég M:megoldás 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Próbálkozzunk egy példával! S egy kézenfekvő megoldás-ötlettel: a backtrack-kel! i ki vi 1 15 2 3 6 7 12 4 5 11 9 17 Rajzoljunk! [ ) [ ) [ ) [ ) ) [ 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Választási lehetőségek: [1,15)  Db=1 [3,6)  [7,12)  Db=2  [9,17)  Db=2 [7,12) ilyen már volt  Db=1 [5,11)  Db=1 [9,17) ilyen már volt  Db=1 [ ) [ ) [ ) [ ) ) [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Megoldás józanésszel1: Eseményenként döntsünk arról, hogy bevesszük vagy nem! Bevehető, ha „kompatibilis” az ed-digiekkel. Válasszunk az események közül úgy, hogy a legkevesebbet mu-lasszuk el! Az az optimális, amelyik leghama-rabb kezdődik. Nem nyert! 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Megoldás józanésszel2: Eseményenként döntsünk arról, hogy bevesszük vagy nem! Bevehető, ha „kompatibilis” az ed-digiekkel. Válasszunk az események közül úgy, hogy a legtöbb lehetőség ma-radjon a továbbiak számára! Az az optimális, amelyik leghama-rabb ér véget. Lehetséges? 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Próbáljuk ezt ki! A vég-szerinti sorrend: [ ) [ ) [ ) [ ) ) [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  ? Mohó választással a megoldás: [ ) [ ) [ ) [ ) ) [ 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Jó ez így általában is? Lássuk be! Tegyük föl, hogy M={e1,e2,…,eu}, ei<ei+1 megoldás is, optimális is! Rendezés  v1vi  {1,e2,…,eu} is…  az optimális megoldás kezdődhet a mohón választottal. Legyen E’={i | v1ki i=2..n} és M’ egy optimális megoldása az E’-vel jellemzett redukált problémának, ekkor {1}M’ megoldás is és optimális is.  így folytatható is. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április Mindez nem túl nagy ár (matematika) a hatékonyságért? A hatékonyságot vizsgáljuk meg: egy „naiv” megoldás egy backtrack megoldás, és egy mohó esetében. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A „naiv” változat („elmélet”): A megvizsgálandó esetek száma: Egy i eseményből álló kompatibilitá-sának vizsgálatához szükséges hasonlítások száma: i2-nel arányos. Összesen: A naiv alapja nem is annyira naiv, hiszen csak egy-egy feltételezett megoldáshosszhoz (1,2,…,n-1,n) a besorolt elemek egyetlen kombinációját (azaz egyetlen sorrendfüggetlen megoldáslehetőséget) vizsgálja. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A „naiv” változat („elmélet”): A megvizsgálandó esetek száma: Egy i eseményből álló kompatibilitá-sának vizsgálatához szükséges hasonlítások száma: i2-nel arányos. Összesen: (Pl. n=9-re 6912 és 20736 közötti!) A naiv alapja nem is annyira naiv, hiszen csak egy-egy feltételezett megoldáshosszhoz (1,2,…,n-1,n) a besorolt elemek egyetlen kombinációját (azaz egyetlen sorrendfüggetlen megoldáslehetőséget) vizsgálja. 2005. április Mohó algoritmusok 14/70 Szlávi Péter: Tehetséggondozás - mohó algoritmusok 14

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A backtrack-es változat (kódja): 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A backtrack-es változat (kódja): 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A backtrack-es változat (kódja): 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A backtrack-es változat („empirikusan”): Próbáljuk ki és következtessünk! Zip, exe. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A mohó változat (kódja): 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A mohó változat (kódja): 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A mohó változat („empirikusan”): Próbáljuk ki és következtessünk! Zip, exe. Kimond-hatjuk: megéri!!! 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” INFO Savaria'2005 Egy gondolatébresztő példa – a mohó algoritmusok „szókincse” 2005. április A mohó megoldás sablonja: Lépésekre bontjuk az eljárásunkat. Keresünk egy adott lépésnél eldönthető, lokálisan optimális kritériumot (mohó választás). belátjuk a mohóság működését: van-e optimális megoldás, ami mohó választással kezdődik? a mohó választást hozzávéve a redukált probléma optimális megoldásához, az eredeti probléma megoldását kapjuk? Algoritmizáljuk a mohó megoldást. „mohó választási tulajdonság” „optimális részproblémák tulajdonság” 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A feladat: „Egy népszerű zenekar a következő 100 napra vonatkozó fellépéseit tervezi. Sok meghívása van fellépésre, ezek közül kell a zenekarnak válasz-tani, hogy melyeket fogadja el. Minden fellépés pontosan egy napot foglal el. Minden beérkezett meghívási igény egy (k, v) számpárral adott, ami azt jelenti, hogy az igénylő azt szeretné, hogy a zenekar olyan n sorszámú napon tartson nála koncertet, hogy knv. A zenekarnak az a célja, hogy a lehető legtöbb fellépést elvállaljon (termé-szetesen egy napon csak egyet). Készítsünk programot, amely kiszámítja, hogy mely meghívásokat fogadjunk el, hogy az összes fellépések száma a lehető legnagyobb legyen; a program adjon is meg egy beosztást!” 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A megoldás: Lépésekre bontás – a fellépési ajánlatok közül egy (alkalmas) választása Mohó választás – kettős probléma: ajánlat-intervallum, intervallumbeli nap; stratégia: a leghamarabb lezáruló, legkorábbi napja… miért? L. példákat. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A megoldás (folytatás): Belátás: Nap={1,…,NapDb} – a választható napok sor-számai Fl={1,…,FlDb} – a fellépések sorszámai ki,vi iFl – az i. fellépés kezdő, ill. végső nap-sorszáma NF={(n1,f1),…,(nDb,fDb)}, ninj, fifj (ij), ni[kfi,vfi], fiFl i,j=1..Db – a megoldás NF optimális megoldás 2005. április Mohó algoritmusok 27/70 Szlávi Péter: Tehetséggondozás - mohó algoritmusok 27

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Def. (fellépések rendezése) f,f’Fl, f<ff’ (f „kisebb/előbbi”, mint f’), acsa vf<vf’ (előbb ér véget) vagy vf=vf’ és kf<kf’ (ha ugyanakkor végződik, akkor előbb kezdődik) Def. (mohó választás) SzNap „szabad” napok és Fl’ fellépések mellett (n*,f*) mohó választás, ha f*=Min<f {fFl’ | [kf..vf]Sz} – a „legko-rábbi” fellépés, amely még elvállalható n*=Min {nSz | n[kf*..vf*]Sz} – a „legko-rábbi” fellépés legkorábbi napján 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Z1. Állítás (mohó választási tulajdonság): Ha NF optimális megoldás és (n*,f*) mohó választás, akkor NF* = {(n*,f*),(n2,f2),..,(nDb,fDb)} is op-timális megoldás. Bizonyítás: NF opt.mo. és (n*,f*) mohó választás, de (_,f*)NF  (ni,fi): ni=n* (különben ellentmondásra jutnánk NF optimalitásával) Helyettesítsük NF-ben (ni,fi)-t (n*,f*)-gal: NF’={(n1,f1),…,(ni-1,fi-1),(n*,f*),(ni+1,fi+1),…,(nDb,fDb)}  NF’ megoldás is és optimális is Sorszámozzuk újra az NF’-t f-szerinti sorrendben: NF*={(n*,f*),(n2,f2),..,(nDb,fDb)}  NF* megoldás; NF optimális és ║NF║=║NF*║  NF* optimális. … kicsit hosszadalmasabban a (_,f*)NF –re is… l. A jegyzetben a bizonyítás befejezését! 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Z2. Állítás (optimális részproblémák tulaj-donság): Ha SzNap „szabad” napok, (n*,f*) mohó választás Sz mellett és NF* optimális megoldás Sz\{n*}-ra, akkor (n*,f*)NF* optimális megoldása az Sz-nek. Bizonyítás: megoldás? NF* (optimális) megoldás Sz\{n*}-ra  (ni,fi)NF* : n*ni  (n*,f*)NF* megoldása lesz az Sz-nek. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április (Bizonyítás folytatás): optimális? (indirekt) L. Db=║NF*║ Tfh. NF’ = {(n’1,f’1),..,(n’L,f’L)} optimális meg-oldás Sz-re, amelyre L>Db+1. A Z1. állításból következik, hogy NF” = {(n*,f*),(n’2,f’2),..,(n’L,f’L)} is optimális megol-dás. Világos, hogy az NF”-ből az (n*,f*)-t elhagyva egy megoldását kapjuk az Sz\{n*}-nak, ami jobb, mint az NF*, hiszen több (L–1>Db) elemet tartalmaz. Ez ellentmond az állítás 3. feltételének. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A megvalósítás: ábrázolás Const MaxFellepes=100; {max. fellépésszám; Ef: <256} NapDb=255; {max. napszám, ami most nem is változik} Type TKeresett=Record igaz:Boolean; nap:Byte End; {lin.kereséshez} TFellepes=Record db:Byte; mely:Array [0..MaxFellepes] of Record k,v,s:Byte; end; {fellépés: kezdet/vég/sorsz.} End; TNapok=Set of Byte; {nap: melyik fellépés} TBeoszt=Array [1..MaxFellepes] of Byte; {beosztott fellépés indexek} Var{Globális} Fel:TFellepes; {fellépések} M:Byte; {beosztott fellépések száma} Beoszt:TBeoszt; {beosztott fellépések sorszáma} FoglNapok:TNapok; Az inputot, ill. az outputot meghatározó adatokat színekkel megkülönböztettük. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A megvalósítás: a lényegi rész algoritmusa Procedure FellepestUtemez; Var i:Byte; OK:TKeresett; Begin{FellepestUtemez} Rendezes(Fel); FoglNapok:=[Fel[1].k]; M:=1; Beoszt[1]:=Fel[1].s; For i:=2 to Fel.db do Begin OK:=VallalhatoE(i); If OK.igaz then Begin FoglNapok:=FoglNapok+[OK.nap]; Inc(M); Beoszt[M]:=Fel[i].s; End{If}; End{For i} End;{FellepestUtemez} Function VallahatóE(Const i:Byte): TKeresett; Var j:Word; k:TKeresett; Begin j:=Fel[i].k; While (j<=Fel[i].v) and (j in FoglNap) do Inc(j); k.igaz:=j<=Fel[i].v; If k.igaz then k.nap:=j; VallalhatoE:=k End;{VallalhatoE} 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április A feladat egy variációja A feladatot módosítsuk úgy, hogy minden fellépés járjon valamennyi (hi) haszonnal. Természetesen ekkor a célfeladat úgy mó-dosul, hogy a lehető legtöbb haszonra kell törekedni. Ez az apró módosítás mennyiben érinti a megoldást? Az sejthető, hogy az eddigi törek-vés: minél több fellépést kell elvállalni, nem feltétlenül hozza a legtöbb hasznot. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Egy ellen(?)példa: Az adatok: i tóli igi hi 1 4 3 2 5 [ ] [ ] [ ] [ ] ] [ 1 2 3 4 5 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Mohón rendezve: i tóli igi hi 3 1 4 2 5 S így megoldva: [ ] [ ] A haszon: 1+2+3+4=10 … a „leghasznosabb” kimaradt!!! [ ] [ ] ] [ 1 2 3 4 5 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április i tóli igi hi 3 1 4 2 5 Pedig, ha a 2 helyett az 5-öt tennénk, a haszon: 1+2+3–4+5=11 lenne, sőt, ha az 1 helyett ten-nénk az 5-öt, a haszon: 1+2+3–3+5=12 lenne. [ ] [ ] [ ] [ ] ] [ 1 2 3 4 5 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Legyen a mohóság szem-pontja a haszon! Rendez-zük így! i tóli igi hi 5 3 4 2 1 S így megoldva: ] [ [ ] Az előbbiek után becsült optimumot elértük! Igaz más módon. De tényleg optimum? [ ] [ ] [ ] 1 2 3 4 5 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Sajnos nem!!! i tóli igi hi 5 3 4 2 1 Lásd az alábbi javítást: ] [ [ ] A javítás értéke: 5+4+3+2=14 Nem találtunk eddig jó mohó szempontot! [ ] Pedig van mohó megoldás! [ ] [ ] 1 2 3 4 5 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Első példázat a „zenekar”-ról INFO Savaria'2005 Első példázat a „zenekar”-ról 2005. április Jegyezzük föl az ütközés-számot! Haszonsorrend + napkiválasztás: a legkevésbé ütköző nap… Íme a végrehajtás menete: i tóli igi hi 5 3 4 2 1 Pedig van mohó megoldás! 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április A feladat: „Egy rendezvényre N vendéget hívtak meg. Minden vendég előre jelezte, hogy mettől meddig lesz jelen. A szervezők fényképeken akarják megörökíteni a rendez-vényen résztvevőket. Azt tervezik, hogy kiválasztanak néhány időpontot és minden kiválasztott időpontban az akkor éppen jelenlevőkről csoportképet készítenek. Az a céljuk, hogy a lehető legkevesebb képet kelljen készíteni, de mindenki rajta legyen legalább egy ké-pen. Írjunk programot, amely kiszámítja, hogy legkevesebb hány fényképet kell készíteni, és megadja azokat az időpontokat is amikor csoportképet kell készíteni!” 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április A megoldás: Lépésekre bontás – a vendégek közül egy (al-kalmas) választása Mohó választás – a legkorábban távozó ven-dég, aki a legutóbbi fényképezés óta érkezett Belátás: V = {v1,…,vvDb}, ahol vi = (tóli,igi) (i=1..vDb) – a vendégek ott tartózkodása FT = {ft1,…,ftftDb}, ahol fti<fti+1 (i=1..ftDb-1) – a megoldás FT optimális megoldás 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április Def. (vendégek rendezése) vi,vjV, vi ig vj („kisebb/előbbi”), acsa vi.igvj.ig (azaz előbb indul haza) Def. (mohó választás) W  V még le nem fényképezettek és ft utolsó fényképezés mellett ft* mohó választás, ha ft*=v.ig, amelyre v:=Minig {v  W | v.tól>ft} – az ft után érkezők közül a „legkorábban” távozó távozási ideje 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április F1. Állítás (mohó választási tulajdonság): Ha FT = {ft1,ft2,…,ftftDb} optimális megoldás és ft* mohó választás, akkor FT* = {ft*,ft2,...,ftftDb} is optimális megoldás. Bizonyítás: Ha ft1ft*, akkor ft*-ig nincs távozás  ft1 helyett ft* is jó Így FT megoldás volt  FT* megoldás volta FT optimalitása  FT* optimalitása. Az ft1>ft* nem lehetséges, mivel ekkor az első vendégről nem készülhetett fotó (ft*=v1.ig<ft1)  FT nem lehet megoldás, ami ellentmon-dás. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április Jelölés: FTW={ft1,…,ftk}, W-ben szereplő ven-dégekre optimális megoldás. F2. Állítás (optimális részproblémák tulaj-donság): Ha ft* mohó választás és FTW = {ft2,...,ftftDb} optimális megoldás a W={vi | vi.tól>ft*} esetén, akkor FTV = {ft*,ft2,..,ftftDb} optimális megoldás (azaz a teljes V esetén optimális megoldás). 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április Bizonyítás: FTV megoldás? FTW megoldás W-re  minden vendégről, aki ft* után érkezett (ft*<vi.tól), készült fénykép ft* értelmezése  ft*-ig érkezetteket ft*-kor fényképezték le 1. & 2.  FTV megoldás 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április (Bizonyítás folytatása) FTV optimális? (indirekt) Tfh FTV nem optimális megoldás, azaz FT”={ft”1,ft”2,..,ft”k} optimális …, amelyre k<ftDb. F1  FT*=(ft*,ft”2,...,ft”k) is optimális … Hagyjuk el, akik ft*-kor jelen voltak. Ezek alkotják éppen W-t. Mivel FT* megoldás során mindenkiről ké-szült fénykép, és ft*-kor a W-beliekről nem készülhetett, ezért róluk csak a későbbi időpontokban készülhetett.  (ft”2,...,ft”k) megoldás W mellett, vagyis jobb az optimális FTW-nél. Ez ellentmondás. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április A megvalósítás: ábrázolás Const MaxN=3000; {az intervallumok max. száma} MaxT=1000; {a megoldás időpontok max. száma} Var{Global} vDb :Word; {az intervallumok száma} Mettol:Array [1..MaxT] of Word; {az intervallumok: [Mettol[i],i), ha Mettol[i]>0} ftDB:Word; {a megoldás időpontok száma} FT:Array [1..MaxN] of Word; {a megoldás időpontok halmaza} A távozás előtt készüljön a fénykép! 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április A megvalósítás: a lényegi rész algoritmusa Procedure FotoUtemezes; {Globális Input: MaxT, Mettol Globális Output: ftDB, FT} Var i,t:Integer; Utolso:Integer; Begin{FotoUtemezes} Utolso:=0;{az utolsó beválasztott pont} ftDB:=0; {a beválasztott pontok száma} For t:=1 to MaxT Do Begin If (Mettol[t]>0)and(Utolso<Mettol[t]) Then Begin Utolso:=t; Inc(ftDB); FT[ftDB]:=Utolso; End; End{for t}; End{FotoUtemezes}; van távozó az utolsó fényképezés után jött 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Második példázat a „fényké-peszkedés”-ről INFO Savaria'2005 Második példázat a „fényké-peszkedés”-ről 2005. április a beolvasás algoritmusa Procedure Beolvas; {Globális Output: vDb, Mettol} Var Bef:Text; i,tol,ig:Word; Begin{Beolvas} For i:=1 to MaxT do Mettol[i]:=0; Assign(Bef,'fenykep.be'); Reset(Bef); ReadLn(Bef,vDb); For i:=1 to vDb do Begin ReadLn(Bef,tol,ig); If tol>Mettol[ig] then Mettol[ig]:=tol; End; Close(Bef); End{Beolvas}; Hatékonyság Hely – nem függ vDb-től; Idő – vDb-től lineárisan (nem négyzetesen, mint a rendezés) 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A feladat: „Egy rendezvényt olyan teremben tartanak, ahol M db ülőhely van. Az ülőhelyek 1-től M-ig sorszámozottak. A rendezvény szervezője megrendeléseket fogad. Minden megrendelés egy (A,B) számpárt tartalmaz, ami azt je-lenti, hogy a megrendelő olyan ülőhelyet szeretne kap-ni, amelynek S sorszáma A és B közé esik (ASB). Írjunk programot, amely kiszámítja, hogy a szervező a megrendelések alapján a legjobb esetben hány meg-rendelést tud kielégíteni és meg is ad egy olyan jegyki-osztást, amely kielégíti a megrendeléseket!” 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A megoldás: Észrevétel: nagyban emlékeztet az első fela-dat megoldására. Itt is, ott is egy interval-lum­halmazból kell minél többet kiválasztani úgy, hogy a belőlük kiválasztott „pont” más intervallumból vettel ne essen egybe. Ezért az elemzéstől most eltekinthetünk. 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A megvalósítás: adatleírás Const MaxN=1000; {a megrendelések max. száma} MaxM=10000; {az ülőhelyek max. száma} Type TMegrendeles=Array [1..MaxN] of Record k,v:Word End; {a szék intervallumok kezdő- és vég-időpontjai} Var{Global} szekDb:Word; {az ülőhelyek száma} mrDb:Word; {a megrendelések száma} Mr:TMegrendeles; {a megrendelések} Hany:Integer; {kielégíthető megrendelők száma} Mo:Array [1..MaxM] of 0..MaxN; {a megoldás: az i-edik széket a Mo[i]-számú megrendelő kapja, ha ez nem 0} 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A megvalósítás: a lényegi rész algoritmusa rS index-tömb: hogy ne kelljen mozgatni Procedure Ultet; {Globális intput: szekDb,mrDb,Mr Globális output: Hany,Mo} Var rS:Array [1..MaxN] of 1..MaxN; i,ii,j:Word; Begin{Ultet} For i:=1 To mrDb Do rS[i]:=i; For i:=1 To szekDb Do Mo[i]:=0; Rendez{mrDb,rS,Mr}; Hany:=0; For i:=1 To mrDb Do Begin ii:=rS[i]; j:=Mr[ii].k; While (j<=Mr[ii].v) and (Mo[j]<>0) do Inc(j); If j<=Mr[ii].v then Begin Mo[j]:=ii; Inc(Hany); End; End{For i}; End{Ultet}; van még szabad hely számára? 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április a rendezés algoritmusa egy hatékony Quicksort: Procedure Rendez; {Globális input: mrDb,rS,Mr Globális output: rS} Function Kisebb(i,j:Word):Boolean; Begin{Kisebb} … {Kisebb:=Mr[i] <v Mr[j]} End{Kisebb}; Function Feloszt(Bal,Jobb : Word): Word; Var j:Word; … Begin{Feloszt} … {rS-t szétválogatja a középsőnél kisebbekre és nem kisebbekre; a „középső” a j. helyre kerül} Feloszt:=j End{Feloszt}; 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április a rendezés algoritmusa egy hatékony Quicksort: Procedure Rendez; {Globális input: mrDb,rS,Mr Globális output: rS} Function Kisebb(i,j:Word):Boolean; Begin{Kisebb} … {Kisebb:=Mr[i] <v Mr[j]} End{Kisebb}; Function Feloszt(Bal,Jobb : Word): Word; Var j:Word; … Begin{Feloszt} … {rS-t szétválogatja a középsőnél kisebbekre és nem kisebbekre; a „középső” a j. helyre kerül} Feloszt:=j End{Feloszt}; Procedure RendezR(Bal,Jobb : Integer); Var f : Word; Begin{RendezR} f:=Feloszt(Bal,Jobb); If f>Bal then RendezR(Bal,f); If f+1<Jobb then RendezR(f+1,Jobb) End{RendezR}; Begin{Rendez} RendezR(1,mrDb) End;{Rendez} 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A rendezés érdekessége – kérdések: Hány ízben kerül rá a sor? Ugyanazon adatsorozatot esetleg több szempontból is kell-e rendezni? Memóriaszűkösség 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Harmadik példázat a „ültetés”-ről INFO Savaria'2005 Harmadik példázat a „ültetés”-ről 2005. április A rendezés érdekessége – megfontolások: Csak egyszer, akkor egy „egyszerű” ren-dezés is megteszi. (Hatékonysága: (N2)). Többszörös sorrendbe állítás: az előzetes sorrend csak ha „muszáj”, változzon. Például: ha (kezdet,vég) kettősök soroza-tát már rendeztük kezdet-szerint, majd vég-szerint is kell, akkor azonos végűek között maradjon meg a kezdet-szerinti sorrend. (Stabil rendezés.) „Memóriabőség”, akkor a sebességnövelés érdekében segédtömbök. Például index-tömb közvetítését igénybe venni (l. előbb az rS). 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

INFO Savaria'2005 Konklúzió? 2005. április Néhány további klasszikus feladat, de most már részletes elemzés nélkül. Huffman-kódolás Darabolási feladat Pénzváltási feladat(ok) Kérdések: Vannak-e felismerhető jegyei a feladatoknak? Láttuk: sablon az van. De, milyen csapdák vannak? Példák: „Apró” módosítások – egy csipetnyi pénz a feltételek közé … 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Komolytalan befejezés, ha még nem lenne elég a jókedv INFO Savaria'2005 Komolytalan befejezés, ha még nem lenne elég a jókedv 2005. április A jó kedvért és a mohósághoz néhány web-irodalmi adalék: „Ami az embert jóllakottá teszi, az nem a táplálék mennyisége, hanem a mohóság hiánya.” Bhagavad-Gita: Tizenhatodik fejezet [21] Tizennegyedik fejezet [17] „A jótulajdonságokat szeretjük – a rosszakba szerelmesek vagyunk.” Karinthy Frigyes 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok

Komolytalan befejezés, ha még nem lenne elég a jókedv INFO Savaria'2005 Komolytalan befejezés, ha még nem lenne elég a jókedv 2005. április Vicc: „– Asszony! Fantasztikus ember ez az Oszkár. Minden kell neki, amit csak meglát. – Akkor bemutathatnád neki a lányunkat...” Kép: 2005. április Mohó algoritmusok Szlávi Péter: Tehetséggondozás - mohó algoritmusok