Algoritmusok és Adatszerkezetek I.

Slides:



Advertisements
Hasonló előadás
ADATSZERZÉS, INFORMÁCIÓ HASZNOSULÁS Biztonságtudatos vállalati kultúra Készítette: Jasenszky Nándor egyetemi szakoktató NKE NBI TEH tanszék.
Advertisements

A kártyanyomtatás fortélyai Csákvári Krisztián Kártya és címke gyártás
DINAMIKUS PROGRAMOZÁS Szabó Zoltán, Kátai Zoltán V. Kiss Elemér programozói tábor Hargita, március
Fókuszban az önkormányzati tagsággal rendelkező szociális szövetkezetek _ A pályázatkezelői felület bemutatása.
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,
Informatikai rendszerek általános jellemzői 1.Hierarchikus felépítés Rendszer → alrendszer->... → egyedi komponens 2.Az elemi komponensek halmaza absztrakciófüggő.
Gazdasági informatika - bevezető
Összeállította: Horváth Józsefné
Dr. Kovács László Főtitkár
Becslés gyakorlat november 3.
Kockázat és megbízhatóság
Programozás III. Gyakorlás.
Az integrált áramkörök (IC-k) típusai és tervezése
Észlelés és egyéni döntéshozatal, tanulás
Kockázat és megbízhatóság
Mesterséges intelligencia
A kollektív szerződés Dr. Fodor T. Gábor Ügyvéd
Algoritmusok és Adatszerkezetek I.
Tömörítés.
A Hazug paradoxona Minden krétai hazudik. (Mondta egy krétai.)
Algoritmusok és Adatszerkezetek I.
Technológiai folyamatok optimalizálása
Technológiai folyamatok optimalizálása
Struktúra predikció ápr. 6.
Szervezetfejlesztés II. előadá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ó
Konfliktusok az iskolában
Hipotézisvizsgálat.
Logikai programozás 2..
VÁRATLAN MŰSZAKI ESEMÉNYEK
A PDCA elv alkalmazása az információvédelmi irányítási rendszerekben 1
KORAI FIGYELMEZTETŐ JELEK
Innovációs képesség és jólét összefüggései
2. Bevezetés A programozásba
Szerkezetek Dinamikája
Business Mathematics
Standardizálás.
Life is game! But do not only play with a game!
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Algoritmusok és Adatszerkezetek I.
Közfoglalkoztatásból a versenyszférába- segítő munkaerőpiaci program
A hatékony adományozás eszközei igazgató, Magyar Adományozói Fórum
Tilk Bence Konzulens: Dr. Horváth Gábor
Kátai Zoltán ELTE, május
Készítette: Sinkovics Ferenc
Munkanélküliség.
AVL fák.
Compliance és Corporate Governance
Munkagazdaságtani feladatok
A csoportok tanulása, mint a szervezeti tanulás alapja
3. előadás.
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Algoritmusok és Adatszerkezetek I.
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
A szállítási probléma.
SQL jogosultság-kezelés
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Munkagazdaságtani feladatok
Állandó és Változó Nyomású tágulási tartályok és méretezésük
Körmentes irányított gráfban legrövidebb utak
3. előadás.
A geometriai transzformációk
Algoritmusok.
A T-spline felületreprezentáció
Algoritmusok és Adatszerkezetek I.
A (bináris) kupac adatstruktúra
A tehetséggondozás kihívásai
Előadás másolata:

Algoritmusok és Adatszerkezetek I. Mohó algoritmusok 2017. szeptember 26.

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 1 áll rendelkezésre, de az darabolható. Mi a legnagyobb ∑E ami S kapacitásba belefér?

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

0-1 hátizsák probléma

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ó algoritmus 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.

Mohó-választási tulajdonság Ha a lokális optimum egyben globális Dinamikus programozás: alulról felfelé építő (bottom-up) Mohó: felülről lefelés (top-down)

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

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 karakterkód bázis: 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 mohó-választási tulajdonság: 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 átfedő feladatok Dinamikus Programozás: átfedő feladatok optimalizálási feladatok alulról-felfele építkezés Mohó algoritmusok: adható mohó stratégia az opt feladatra

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