Lénárt Szabolcs Páll Boglárka

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

Események formális leírása, műveletek
A Dijkstra algoritmus.
A backtracking nem rekurzív változata, azaz az iteratív alakja p←1; st[p] ← 0; amíg p>0 végezd el kezdet ha akkor kezdet st[p] ← ha akkor meghív kiír_vagy_elment_mátrixba_vagy_vektorba_vektor.
Készítette: Nagy Mihály tanár Perecsen, 2006.
Készítette: Kosztyán Zsolt Tibor
Elemi algoritmusok Páll Boglárka.
Másodfokú egyenlőtlenségek
Természetes számok 0, 1, 2, 3, ..., 24, 25, ..., 1231, 1232, ..., n, ...  = {0, 1, 2, 3, ..., n,...} a természetes számok halmaza Műveletek: összeadás.
Elemi algoritmusok Páll Boglárka.
Elemi algoritmusok Páll Boglárka.
A Hozzárendelési feladat megoldása Magyar-módszerrel
Gyakorló feladatsor eljárásokra Készítette: Rummel Szabolcs Elérhetősé:
Műveletek logaritmussal
Matematika II. 4. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
INFOÉRA 2006 Kombinatorika
Prímtesztelés Témavezető: Kátai Imre Komputeralgebra Tanszék Nagy Gábor:
Gyűrűk Definíció. Az (R, +, ·) algebrai struktúra gyűrű, ha + és · R-en binér műveletek, valamint I. (R, +) Abel-csoport, II. (R, ·) félcsoport, és III.
Szélességi bejárás Párhuzamosítása.
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.
Egydimenziós tömbök. Deklarálás: var valtozónév:array[kezdőérték..végsőérték]of típus; type típusnév = array [kezdőérték..végsőérték] of típus; var valtozónév:
Matematika: Számelmélet
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
Halmazok Gyakorlás.
A TERMÉSZETTUDOMÁNYOK ALAPJAI 1. Matematika
Eseményalgebra, kombinatorika
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
Utórendezéses edényrendezés RADIX „előre”. Definíció  Az általános utórendezéses edényrendezés speciálisan r alapú d jegyű számokra felírt változata.
Edényrendezés - RADIX „vissza” - bináris számokra
Programozás I. Ciklusok
Halmazok Összefoglalás.
szakmérnök hallgatók számára
Utórendezéses edényrendezés – RADIX „előre”
Halmazok Tanítás.
Összetett adattípusok a Pascal nyelvben
A Pascal programozási nyelv alapjai
Ciklusok: 3. Hátultesztelő ciklus
Ciklusok: 1. Számlálós ciklus
Ciklusok: 2. Előltesztelő ciklus
Feladatok: Algoritmusok Pszeudokódban
A Pascal programozási nyelv alapjai
Az oszd meg és uralkodj (Divide et Impera) programozási módszer
Klasszikus Programozás a FoxPro-ban FELADATOK
2006. március 3. Három négyzet oldalai különböző prím- számok. A két kisebb négyzet kerületének ösz- szege egyenlő a legnagyobb négyzet kerületé- vel;
Gépi tanulás Tanuló ágens, döntési fák, általános logikai leirások tanulása.
Ciklusok (iterációk).
Összetett adattípusok
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
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.
Specifikáció Specifikáció Követelményei: Tömör legyen, egyértelmű, precíz, jól formalizált, szemléletes, érthető Meg kell adni a program bemenő adatait.
A Dijkstra algoritmus.
Nevezetes algoritmusok
Valószínűségszámítás
Logikai programozás 2..
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
Mélységi bejárás Az algoritmus elve: Egy kezdőpontból kiindulva addig megyünk egy él mentén, ameddig el nem jutunk egy olyan csúcsba, amelyből már nem.
1. MATEMATIKA ELŐADÁS Halmazok, Függvények.
Módosított normál feladat
A természetes számok osztása, az osztás tulajdonságai
Algoritmusok és Adatszerkezetek Egy kifejezés lengyelformára hozása - bemutató.
„RADIX előre” edényrendezés Adott a háromjegyű bináris számok következő sorozata: 011, 111, 101, 010, 110, 001, 100 Adja meg a tömb tartalmát az egyes.
Számok világa.
A Dijkstra algoritmus.
Sudoku.
Mediánok és rendezett minták
Lineáris keresés Keresés (N,A,sorszam) i := 1
Depth First Search Backtracking
Többértékű függőségek
Programozási tételek.
Tanórán kívül lehet kicsit több
Előadás másolata:

Lénárt Szabolcs Páll Boglárka Programozási módszerek Backtracking (Visszalépéses keresés) Általános bemutató Lénárt Szabolcs Páll Boglárka

Alkalmazási terület azon feladatok megoldásakor alkalmazható, amelyeknek eredményét az M1  M2  ...  Mn Descartes-szorzatnak azon elemei alkotják, amelyek eleget tesznek bizonyos belső feltételeknek. M1  M2  ...  Mn Descartes-szorzatot a megoldások terének nevezzük.

1. Példa Példa: Irassuk ki az összes 6 / 49 lottón kisorsolható lehetséges eseteket! Ebben az esetben a megoldás tere: [1 .. 49] x [1 .. 49] x [1 .. 49] x [1 .. 49] x [1 .. 49] x [1 .. 49] 6 23 5 18 46 33 egy lehetséges megoldás A belső feltételek pedig: a számok mind különböznek egymástól

... ... Megoldás: x x 1 2 3 eljutunk az első megoldásig 1 2 3 4 5 6 [1 .. 49] [1 .. 49] [1 .. 49] x [1 .. 49] x [1 .. 49] x [1 .. 49] kiválasztjuk az első számot az M1 halmazból kiválasztjuk a második számot az M2 halmazból kiválasztjuk a harmadik számot az M3 halmazból nem tesz eleget a belső feltételnek !!! nem tesz eleget a belső feltételnek !!! 1 1 1 ... kiválasztjuk az új második számot az M2 halmazból kiválasztjuk az új harmadik számot az M3 halmazból ... 2 3 eljutunk az első megoldásig 1 2 3 4 5 6

Megoldás: további megoldások megtalálása: 1 2 3 4 5 6 1 2 3 4 6 7 Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M4 halmazból választunk új elemet) Megint a megoldástér utolsó halmazának (itt M6) elemeit próbáljuk ki sorra A megoldástér utolsó halmazának (itt M6) elemeit próbáljuk ki sorra 1 2 3 5 6 8 ... 1 2 3 5 48 49 1 2 3 4 6 8 ... 1 2 3 4 6 49 1 2 3 4 5 7 1 2 3 4 5 8 1 2 3 4 5 9 1 2 3 4 5 10 ... 1 2 3 4 5 49 ... Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M5 halmazból választunk új elemet) 1 2 3 46 47 48 1 2 3 46 47 49 1 2 3 46 48 49 1 2 3 47 48 49 ... 1 2 3 4 46 47 1 2 3 4 46 48 1 2 3 4 46 49 1 2 3 4 47 48 1 2 3 4 47 49 1 2 3 4 48 49 Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M5 halmazból választunk új elemet) Eljutunk az utolsó megoldáshoz: 44 45 46 47 48 49

2. Példa Példa: Keressük meg az összes olyan pontosan háromjegyű szigorúan pozitív természetes számot, amelyek számjegyeinek összege kisebb 15-nél, illetve a számjegyek szorzata nullától különböző páros szám. Ebben az esetben a megoldás tere: {1,2,3…,9} x {1,2,3…,9} x {1,2,3…,9} A belső feltételek pedig: Számjegyei összege kisebb legyen 15-nél és a számjegyek szorzata pedig páros szám legyen.

Megoldás: x x 1 2 eljutunk az első megoldásig 1 1 2 [1 .. 9] [1 .. 9] kiválasztjuk az első számot az M1 halmazból kiválasztjuk a második számot az M2 halmazból kiválasztjuk a harmadik számot az M3 halmazból nem tesz eleget a belső feltételnek !!! 1 1 1 kiválasztjuk az új harmadik számot az M3 halmazból 2 eljutunk az első megoldásig 1 1 2

Megoldás: további megoldások megtalálása: 1 1 2 1 2 1 Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M1 halmazból választunk új elemet) Megint a megoldástér utolsó halmazának (itt M3) elemeit próbáljuk ki sorra A megoldástér utolsó halmazának (itt M3) elemeit próbáljuk ki sorra 1 2 2 1 2 3 ... 1 2 9 2 1 1 ... 9 4 1 1 1 4 1 1 6 1 1 8 Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M2 halmazból választunk új elemet) ... Ha elfogytak az elemek visszalépünk és változtatunk egyet az előzőleg betett elemen ( M2 halmazból választunk új elemet) 1 4 1 1 4 2 ... 1 4 9 Eljutunk az utolsó megoldáshoz: 9 4 1

A módszer bemutatása A visszalépéses keresés nem generálja a Descartes-szorzat minden x = (x1, x2, ..., xn)  M1  M2  ...  Mn elemét, hanem csak azokat, amelyek esetében remélhető, hogy megfelelnek a belső feltételeknek. Igy csökkenthetjük a próbálkozások számát. Az eredményt általában egy tömbbe tároljuk. A 1.példánk esetében a megoldást egy hatelemes tömbbe fogjuk tárolni. var szam:array[1..6] of 1..49;

A módszer bemutatása Az algoritmusban a tömb elemei egyenként kapnak értékeket: xi számára csak akkor „javasolunk értéket”, ha x1, x2, ..., xi–1 már kaptak értéket az aktuálisan generált eredményben. Az xi-re vonatkozó „javaslat”-ot akkor fogadjuk el, amikor x1, x2, ..., xi–1 értékei az xi értékével együtt megvalósítják a belső feltételeket. Ha az i-edik lépésben a belső feltételek nem teljesülnek, xi számára új értéket választunk az Mi halmazból.

A módszer bemutatása Ha az Mi halmaz minden elemét kipróbáltuk, visszalépünk az i–1-edik elemhez, amely számára új értéket „javasolunk” az Mi–1 halmazból Ha az i-edik lépésben a belső feltételek teljesülnek, az algoritmus folytatódik ha teljesülnek a folytatási feltételek és akkor az xi+1-nek adunk értéket (példa: nem generáltuk mind a három számjegyet), különben a végeredményhez jutunk.

Algoritmus (rekurzív megközelítés) Algoritmus Rekurzív_Backtracking(i): Minden mj eleme Mi értékre végezd el: xi := mj Ha Megfelel(i) akkor {ha megfelel a belső feltételeknek} Ha i < n akkor {ha meg van folytatas} Rekurzív_Backtracking(i+1) {tovabblepek a kovetkezo elemhez} különben {ha a vegere ertem} Ki: x1, x2, ..., xn {eredmeny kiirasa} vége(ha) vége(minden) Vége(algoritmus)

Algoritmus (rekurzív megközelítés) Algoritmus Megfelel(i): Megfelel := igaz Ha a belső feltételek x1, x2, ..., xi esetében nem teljesülnek akkor Megfelel := hamis vége(ha) Vége(algoritmus)