Algoritmusok és Adatszerkezetek I.

Slides:



Advertisements
Hasonló előadás
Kódelmélet.
Advertisements

Rendszerfejlesztés.
Készítette: Mester Tamás METRABI.ELTE.  Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
INFOÉRA Dinamikus programozás (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai képzések.
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Az összehasonlító rendezések
Hatékony gyorsítótár használata legrövidebb utak kereséséhez Bodnár István, Fodor Krisztián, Gyimesi Gábor Jeppe Rishede Thomsen, Man Lung Yiu, Christian.
Szintaktikai elemzés március 1.. Gépi tanulás Osztályozási feladat: Adott egyedek egy halmaza és azok osztályba tartozási függvénye (tanító halmaz),
Minimax és problémaredukció, egyszerű példák INCK431 Előadó: Dr. Nagy Benedek Norbert Gyakorlatvezető: Kovács Zita 2011/2012. II. félév A MESTERSÉGES INTELLIGENCIA.
Forrás kódolás Feladat: -az információ tömörítése.
Kommunikációs Rendszerek
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
AVL fák.
A digitális számítás elmélete
A digitális számítás elmélete
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
Prím algoritmus.
Huffman Kódolás.
Megvalósíthatóság és költségelemzés Készítette: Horváth László Kádár Zsolt.
Utórendezéses edényrendezés – RADIX „előre”
A Lean és az emberi tényező kapcsolata
Az oszd meg és uralkodj (Divide et Impera) programozási módszer
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Problémás függvények : lokális optimalizáció nem használható Globális optimalizáció.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
Algoritmizálás, adatmodellezés tanítása 7. előadás
A Huffman féle tömörítő algoritmus
1 Dijkstra Algoritmusa Györgyi Tamás – GYTNAAI.ELTE 2007 Április 02 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S a b c d e
Az üzleti rendszer komplex döntési modelljei (Modellekkel, számítógéppel támogatott üzleti tervezés) II. Hanyecz Lajos.
MI 2003/ Mi lenne a b legjobb választása? Statisztikai eljárásoknál az un. Fisher féle lineáris diszkriminancia függvény adja a legjobb szétválasztási.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Mohó algoritmusok Szlávi Péter ELTE IK
Diszjunkt halmazok adatszerkezete A diszjunkt halmaz adatszerkezet diszjunkt dinamikus halmazok S={S 1,…,S n } halmaza. Egy halmazt egy képviselője azonosít.
Struktúra predikció Struktúra lehet Felügyelt tanulási probléma
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Készítette : Giligor Dávid Neptun : HSYGGS
OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS. Operáció kutatás Több célú programozás A * x  b C T * x = max, ahol x  0. Alap összefüggés: C T 1 * x = max C.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
A Huffman féle tömörítő algoritmus Huffman Kód. Az Algoritmus Alapelvei Karakterek hossza különböző A karakter hossza sűrűsége határozza meg: Minél több.
Eötvös Konferencia, 2008 április 26. Kovács Máté 1 Útkeresések optimalizálása számítógépes játékokban.
Huffman tömörítés.
Huffman algoritmus Gráf-algoritmusok Algoritmusok és adatszerkezetek II. Gergály Gábor WZBNCH1.
Algoritmusok hatékonysága – lottószelvények
Készítette: Weigel Szilvia számítástechnika szak III. évfolyam, Budapest – ADU A Logo programozási nyelv X.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Technológiai folyamatok optimalizálása Dinamikus programozás Ráduly Botond Mészáros Sándor.
A Dijkstra algoritmus.
Programozási alapok.
Mediánok és rendezett minták
Párhuzamos primitívek
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Számítógépes algoritmusok
P és NP teljes problémák
Algoritmusok és Adatszerkezetek I.
Informatikai gyakorlatok 11. évfolyam
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Az informatika (programozás) oktatásának pedagógiai módszerei
Absztrakt problémák Q  I  S, az absztrakt probléma kétváltozós reláció az esetek (I) és a megoldások (S) halmazán Példa: legrövidebb út Eset: gráf és.
Előadás másolata:

Algoritmusok és Adatszerkezetek I. Mohó algoritmusok 2018. szeptember 25.

Hátizsák probléma Adott egy hátizsák kapacitása és n tárgy, mindegyik értékkel és súllyal megadva. Mekkora a legnagyobb összérték amit a hátizsákba tehetünk?

Töredékes hátizsák probléma Tfh. a tárgyak feldarabolhatóak Bemenet: hátizsák S kapacitása n tárgy, amelyek súlyát S1,…,Sn ill. értékét E1,…,En jelöli Kimenet: Minden tárgyból 1db áll rendelkezésre, de az darabolható. Mi a legnagyobb ∑E ami S kapacitásba belefér?

Töredékes hátizsák probléma

ismétlés nélküli hátizsák probléma esetén

Mohó algoritmus Részfeladatra bontás Optimalizálás A mohó algoritmus mindig az adott lépésben optimálisnak látszó választást teszi. Nem minden problémára adható mohó megoldás! De ha létezik mohó megoldás az nagyon hatékony

Mohó algoritmus Részproblémára bontáskor az a cél, hogy a mohó választás egyetlen részproblémát eredményezzen, amelynek optimális megoldásából következik az eredeti probléma optimális megoldása.

Mohó algoritmusok helyessége 1. Fogalmazzuk meg az optimalizációs feladatot úgy, hogy minden egyes döntés hatására egy megoldandó részprobléma keletkezzen. 2. Bizonyítsuk be, hogy mindig van olyan optimális megoldása az eredeti problémának, amely tartalmazza a mohó választást, tehát a mohó választás mindig biztonságos. 3. Mutassuk meg, hogy a mohó választással olyan részprobléma keletkezik, amelynek egy optimális megoldásához hozzávéve a mohó választást, az eredeti probléma egy optimális megoldását kapjuk. (=„optimális részstruktúrák”)

Optimális részstruktúra Egy feladat optimális részstruktúrájú, ha a probléma egy optimális megoldása önmagán belül a részfeladatok optimális megoldásait tartalmazza. Ugyanaz dinamikus programozás és mohó esetén, de mohó esetében tipikusan egyetlen részfeladat megoldása elég

Mohó algoritmus = lokális optimalizálás Opt ha a lokális optimum egyben globális is

Huffman-kód Cél: egy adatállomány (karaktersorozat) hatékony tömörítése adatvesztés nélkül Intuíció: emberi nyelv szavainak kódolása a 65868724 az 24383179 és 19288013 hogy 11902102 is 10097022 nem 9918516 de 3103363 … alacsonyabbrendûségi 10 beleegyezéseddel 10 megszentségtelenítésének 10

Huffman-kód Bináris karakterábrázolási lehetőségek fix hosszú kód (300K bit) Huffman-kód: változó hosszú kód (224K bit)

Prefix-kód egyik kód sem kezdőszelete egyik másik kódnak sem bizonyítható, hogy prefix-kóddal adható optimális tömörítés 0101100 001011101 ab c aab e

prefix-kód fája teljes bináris fa: minden nem levél csúcsnak két gyereke van T fa költsége:

Huffman kódolás Bemenet: C abécé és f(c) gyakoriságok Kimenet: minimális költségű prefix-fa (teljes bináris fa, azaz |C| levél és |C|-1 belső csúcs)

Huffman-algoritmus Futásidő: O(n log n) O(log n)

Huffman algoritmus

Huffman-algoritmus helyessége biztonságos: optimális részstruktúrák:

+1 gyakorlati megjegyzés Gyakran a bemeneti adatokat alkalmasan előfeldolgozva a mohó választás biztonságos, és ezáltal hatékony algoritmust kapunk.

Összegzés Mohó algoritmus is optimalizálási feladatokra alkalmazható és részfeladatokra bont Akkor érdemes használni ha egyetlen részfeladatból számítható az optimális megoldás töredékes hátizsák és Huffman-kódolás

Részfeladatokra bontási technikák Oszd-meg-és-uralkodj: nem független részfeladatok Dinamikus Programozás: ismétlődő részfeladatok tipikusan optimalizálási feladatok Mohó algoritmusok: ha adható mohó stratégia az opt feladatra

Részfeladatokra bontási technikák Oszd-meg- es-uralkodj Dinamikus Programozás Mohó bármi optimalizálás részfeladatok száma 1< 1 független részfeladatok top-down vs bottom-up ↓ ↑ futásidő >>

Részfeladatokra bontási technikák Mindhárom technika esetén lehet rekurzív és iteratív implementációt is adni rekurzív összefüggéssel adott futásidőket fel tudjuk oldani Helyesség igazolás speciális technikákat igényel