Négyágú fák Quad trees

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Négyágú fák Quad trees"

Átírás

1 Négyágú fák Quad trees Kolozsvár, 2010 Nagy Tímea 1

2 Bevezetés Napjainkban a térbeli informatika jelentős fejlődésnek indult. A kérés nagy mennyiségű adatok feldolgozására láthatóan növekszik, kötelezvén a kutatókat új adatstruktúrák felfedezésére és kifejlesztésére. Adatstruktúrának nevezzük az információk, az adatok formai elrendeződését, az algoritmus nagyobb hatékonysága céljából. Világos tehát, hogy egy alkalmazás sikere nagy részben függ a használt adatstruktúráktól. Így elérkeztünk a dolgozat témájához : egy olyan adatstruktúrát bemutatni, mely alkalmas térbeli adatok tárolására és ábrázolására. Ez az adatstruktúra a négyágú fa (quad tree). Elméleti áttekintés 1. Definíció A négyágú fa egy olyan adatstruktúra, amelyben minden belső csomópontnak négy leszármazottja van. A legelterjedtebb adatszerkezet többdimenziós adatok tárolására. Egy rekurzív felbontáson alapuló hierarchikus adatszerkezet, amely az oszd meg és uralkodj módszerhez hasonlóan alakul. Mivel a hierarchikus adatszerkezetek képesek az adatok valamilyen szempontból fontosabb részhalmazára összpontosítani, ezáltal fölösleges műveletektől szabadulhatunk meg. Mindemellett könnyen áttekinthetőek és implementálásuk is aránylag egyszerű. A négyágú fákat pont típusú adatok, területek, görbék ábrázolására használják. A négyágú fák a teret cellákra osztják, a celláknak van négy leszármazottjuk vagy egy sem. Ha nincs utóda akkor ezt levélnek nevezzük. Ha egy csomópont telítődik, vagyis megvan a négy utóda, akkor tovább osztódik. 2. Osztályozás a) Területi négyágú fa (Region quadtree) Alapötlete a tér felbontása négyzetekre, amelyeknek oldalhosszúsága 2 többszörösével egyenlő. Legyen egy kép, amelyet egy bináris tömbbel kódoltunk, amelynek elemei a {0, 1} 2

3 halmazból valók. Az így kapott négyágú fa mélysége és alakja változó különböző képek esetében. A 2.1.a. ábrán láthatunk egy területet, a 2.1.b. ábrán látható a terület bináris tömbben történő tárolása, a 2.2.a. ábra tartalmazza a felosztások után keletkezett maximális blokkokat, míg a 2.2.b. ábrán a megfelelő négyágú fát láthatjuk ábra. a. egy terület, b. kódolása bináris tömbbel ábra. a. a maximális blokk felosztás, b. a blokk felosztásának megfelelő négyágú fa. 3

4 b) Pont négyágú fa (Point quadtree) A pont fa a bináris fa tovább bővítése kétdimenziós térre. A négyágú fával megoldható feladatoknak két típusa ismert: távolságra vonatkozó feladatok, és jellemzőkre, tulajdonságokra vonatkozó feladatok. A tulajdonságra vonatkozó kérdéseket a következő ábrákkal is szemléltethetjük: a 2.3. a. ábra a felbontott területet tartalmazza (a tulajdonságokat színekkel ábrázoljuk), míg a 2.3. b. ábra tartalmazza a neki megfelelő négyágú fát ábra. a. a maximális blokk felosztás, b. a blokk felosztásának megfelelő négyágú fa. c) Perem négyágú fa (Boundary quadtree) Az ilyen típusú fák inkább vonalakat tárolnak. Görbék megközelítésére használjuk úgy, hogy addig osztjuk a teret amíg a felbontás nagyon apró lesz, és így vonalként tudjuk kezelni. Ennek a felbontásnak a hátránya az, hogy a négyágú fa mélysége túl nagy lesz, valamint a kapott fa nem lesz egyensúlyozott. Az ilyen típusú megközelítés bizonyos adatvesztéssel jár. Perem négyágú fa a 2.4-es ábrán látható. 4

5 2.4. ábra. Egy poligon megadása Hunter és Steiglitz szerint. 3. Történelmi háttér A quad-fák használata nem ismer hosszú történetet. A legelső említések 1972-ből származnak, mikor Hoare a mátrixok négyzetes blokkokra való felbontását Dijkstra-nak tulajdonítja. Morton már 1966-ban használta a térbeli indexelés elvét. A legalaposabb dolgozat 1990-ből származik és Samet nevéhez fűződik. A rekurzív felosztás elvének az eredetét, ami a négyágú fák alapja, nehéz megállapítani. A következőkben néhány mértani adatokra vonatkozó alkalmazást említünk meg, amelyek a területi négyágú fák alkalmazására utalnak. Warnock két dolgozatában leírja azoknak az algoritmusoknak az alkalmazását, amely a nem látható éleket és területeket figyelmen kívül hagyja, a kép rekurzív felbontását alkalmazva. A képterületet fokozatosan egyre kisebb négyzetekre osztja fel, amíg olyan területeket talál, amelyek eléggé egyszerűek ahhoz, hogy megjeleníthetőek legyenek. Klinger és Dyer Warnock ötleteit formafelismerésre és képfeldolgozásra, míg Hunter egy animációs alkalmazásban használta 1978-ban. Az SRI robot projekt egy háromszintű tér-felbontást használt, a robot világának megfelelő térkép ábrázolására. Eastman észreveszi, hogy egy rekurzív felbontás jobban megfelel a robot világának ábrázolására, és bemutat egy egyszerűbb változatot. Párhuzamosan a négyágú fák strukturális fejlesztéseivel, tanulmányozták ezeknek alkalmazhatóságát a képfeldolgozásban is. Kelly bevezette a sík fogalmát, amely egy kicsi kép, 5

6 amelynek pixeljei egy 8 8-as méretű blokknak szürke árnyalatait összesíti egy nagyobb képből. Ezáltal elkerülhetők a szükségtelen erőfeszítések az él-felismerésben. Ez úgy érhető el, hogy a síkban felismerjük az éleket, majd felhasználva ezeket, szelektíven más éleket keresünk a nagyobb képben. Ezen ötlet általánosításai motiválták a nagyobb felbontású képek ábrázolásának fejlesztését. Ezek közül Tanimoto és Pavlidis piramisa áll a legközelebb a területi négyágú fához. Adott egy A(n) 2 n 2 n felbontású kép. A piramis (2.5-ös ábra) egy {A(i)} tömbsorozat amelyben A(i 1) az A(i) oldalméretének felével egyenlő nagyságú tömb. Az A(0)-nak megfelelő tömb a pixel ábra. Egy háromszintű piramis szerkezete. Sokkal megfelelőbb a piramist fa formájában definiálni. Legyen egy 2 n 2 n felbontású kép. A képet rekurzívan felbontjuk négyzetekre, ugyanúgy, mint a négyágú fát, azzal a kivétellel, hogy a felbontás addig tart, amíg el nem érjük a pixeleket. Az így keletkező fának levelei egy-egy pixelt ábrázolnak, míg a közvetlen fölötte levő csomópontok az A(n 1) 2 n-1 2 n-1 felbontású tömbnek felelnek meg. A piramis egy teljes négyágú fa, arra használták, hogy a keresésekben szűkíteni tudjanak, azaz ha egy bizonyos információt találtunk egy nagyobb szinten akkor egy kisebb szinten tovább lehet keresni. 4. Az implementáláshoz használt adatszerkezet felépítése A legelőnyösebb implementálás a mutató (pointer) alapú fa adatszerkezet. A fának valamennyi csomópontja tartalmaz négy mutatót, amely a négy utódra (utódokra) mutatnak, és még egy mutatót a neki megfelelő szülőre (apára). Ezek mellett bejöhetnek más adatmezők is, attól 6

7 függően, hogy mire akarjuk használni a fát. A fa gyökerének apa mutatója null, míg a levelekben a négy utód mutató tartalmaz null értéket. A mutatókra a következőképpen hivatkozunk jelen dolgozatban: q = PARENT(p), ha q valamelyik utód mutatója a p-re mutat. p = CHILD(q, i), ha a p apa mutatója q-ra mutat, vagyis q i. utóda p. 5. A memória szükséglet elemzése Az elsődleges ok amiért a négyágú fákat kifejlesztették az volt, hogy csökkentsék a tárolásra igényelt helyet a homogén blokkok összevonása által. Az összevonásnak egyik következménye az algoritmusok végrehajtási idejének csökkenése. Legyen egy kép ami W darab fehér, és B darab fekete blokkot tartalmaz. Ha egy négyágú fát használunk adatszerkezetként, akkor szükségünk lesz 4(B + W) / 3 darab csomópontra, míg egy 2 n 2 n pixelből álló kép megfelelő bináris tömbjének ábrázolásához 2 2n bit szükséges. Ha olyan esetünk van, hogy az összevonások száma minimális (a kép sakktáblához hasonlít, 2.9 ábra, a négyágú fák használata nem ajánlott ábra. Egy sakktábla és a neki megfelelő négyágú fa. A négyágú fák memória szükséglete a következőktől függ: felbontás, azaz rezolúció (a fában levő szintek száma) 7

8 a kép mérete (a kép széle) az elhelyezkedése a körülfogó rácson belül 6. Példák A következőkben lássunk néhány példát olyan feladatokra, amelyeknek megoldásában a négyágú fák sokat segítenek. Legyen a klasszikus példa, amikor egy térkép adatait tároló adatbázist kérdezzük le. Feltételezzük, hogy van egy térkép, amely magasság görbéket tartalmaz, és egy másik térkép, amely olyan területeket jelöl, ahol előnyös a búza-termelés. Meg kell találnunk azokat a területeket két bizonyos magasság között ahol a búza-termelés a legelőnyösebb. Ennek érdekében meg kell határoznunk a két térkép egy metszetét. Ha a térkép egyéb információt is tartalmazna, mint például azt, hogy milyen területeken előnyös a kukorica-termelés, akkor egyes nem hierarchikus adatstruktúrák használata költségesnek bizonyulna. Azonban, ha hierarchikus adatstruktúrát használunk, mint például a négyágú fát, akkor az adott területekre vonatkozó nagy mennyiségű adatot kizárhatunk, így gyorsan és olcsón megtalálva a kért eredményt. Legyen a következő feladat két út kereszteződésének meghatározása egy adott területen belül. Alkalmazhatnánk pontonkénti ellenőrzést is, de sokkal hatékonyabb a hierarchikus négyszögsorozatok használata, amelyek a két út bizonyos szakaszait tartalmazzák. A metszetet az a két négyszög adja meg, amelyek átfedik egymást. Pont típusú adatokra is megfogalmazhatunk hasonló feladatot. Tegyük fel, hogy rendelkezésünkre áll több város pozíciója egy térkép részleten. Meg szeretnénk határozni azokat a városokat, amelyeknek legkevesebb lakosuk van és legtöbb 150 km-re fekszenek Kolozsvártól. Ha Románia térképét felosztjuk négyzetekre, akkor csak azokat a négyzeteket kell ellenőriznünk amelyek a megadott sugarú körön belül helyezkednek el. Egy utolsó példaként tegyük fel, hogy egy olyan adatbázist szeretnénk lekérdezni, amely különböző típusú adatokat tartalmaz (pontok, görbék, területek). Egy lekérdezés lehetne például a következő: keressük meg azokat a városokat, amelyeknek legkevesebb lakosuk van, fekvése előnyös a kukorica termelés szempontjából és legtöbb 100 km-re fekszik a Szamostól. 8

9 Pont típusú adatok 1. Bevezetés A többdimenziós pont adatokat többféleképpen lehet ábrázolni, a választott adatszerkezet a végrehajtott műveletektől függ. A következőkben feltételezzük, hogy az adatokat négyágú fák segítségével implementáltuk. Az adatokat adatbázisban tároljuk, amely rekordok összessége. Minden pont-adatnak megfelel egy rekord, és lehet egy vagy több attribútuma. Egy lekérdezés azokat a rekordokat keresi, amelyek egy bizonyos tulajdonságot, feltételt teljesítenek. 2. Nem-hierarchikus adatszerkezetek Legyen egy 10 városból álló adathalmazunk, amelyeknek adott az x és y koordinátájuk (3.1 ábra). A legegyszerűbb módszer pont típusú adatok tárolására a szekvenciális lista, vagyis a sor. Ha az adatbázisunk N darab k attribútumú bejegyzést (rekordot) tartalmaz, akkor a keresés O(n. k) bonyolultságú. VÁROS X Y MADRID 5 7 LONDON AMSTERDAM PÁRIZS BERLIN BÉCS RÓMA BUDAPEST ATHÉN 75 2 BUKAREST ábra. Városok szekvenciális listája. Az adatokhoz való hozzáférést gyorsítja a rendezett lista. A rendezést különböző attribútumok szerint végezhetjük. Valamennyi attribútumnak megfelel egy saját rendezett lista, amely lehetővé teszi, hogy akármelyik attribútum szerint lehessen keresni. A 3.2-es ábra tartalmazza a 3.1-es ábra összes adatait, de fordított listaként adja vissza (inverted lists). Két rendezett listánk van, az egyik az x, a másik az y koordinátának megfelelően. Megjegyezzük, hogy a rendezett listák nem a legmegfelelőbbek ilyen típusú adatok tárolására, mivel a keresést csak egy attribútum szerint végezhetjük, amit főattribútumnak is nevezünk. Ilyen típusú adatok feldolgozására több előnyös 9

10 módszer létezik, a legelterjedtebb a térképkészítők körében az egyenlő közű rács módszer (fixed grid). Ez a módszer a teret egyenlő közű cellákra osztja fel, kétdimenziós adatok esetén négyzetekre, lefedve egy ráccsal a térképet. Továbbá mindegyik cellának van egy mutatója egy adatszerkezetre, egy listára például, amely tartalmazza a cellában levő pontok halmazát. X MADRID LONDON PÁRIZS AMSTERDAM BÉCS RÓMA BERLIN BUDAPEST ATHÉN BUKAREST Y ATHÉN MADRID RÓMA BUKAREST BUDAPEST BÉCS PÁRIZS LONDON BERLIN AMSTERDAM 3.2. ábra. Fordított lista. A 3.3-as ábra az egyenlő közű rács módszert szemlélteti, ahol a keresési terület as méretű négyzetekből áll, a koordinátarendszerünk as nagyságú, következik, hogy van 25 egyenlő méretű négyzetünk, amelyek a rácsot alkotják ábra. Egyenlő közű rács módszer. 10

11 Bentley, Stanat és Williams bebizonyították, hogy egy keresés átlagos ideje az egyenlő közű rács módszerban egyenlő O(n 2 k )-val, ahol n a megtalált rekordok száma és 2 k a maximális cellaszám, amelyek metszik a megvizsgált területet. Például, ha megakarjuk keresni az összes olyan várost, amely a (26, 73) középpontú, as négyzeten belül található, meg kell vizsgálnunk a (10, 70), (30, 70), (10, 90) és (30, 90) középpontú cellákat. Lekérdezésünk során négy cellát kell megvizsgálnunk, a visszatérített eredmény pedig, adatbázisunknak megfelelően, Párizs. Az egyenlő közű rács módszer akkor megfelelően hatékony, ha a pont-adatok egyenletes eloszlásúak a területen. Ha a pont-adatok nincsenek egyenletesen elszórva, akkor a módszer nem bizonyul hatékonynak, mivel a cellák nincsenek egyenletesen megtelve, egyesek majdnem üresek, esetleg teljesen üresek is lehetnek, míg más cellákba sok adat tömörülhet, így a hely nem lesz hatékonyan kihasználva. 3. Négyágú pontfák A négyágú pontfa fogalmát (point quadtree) Finkel és Bentley vezették be 1974-ben, mint egy többdimenziós általánosítását a bináris keresőfának, amit úgy kapunk, hogy az egyenlő közű rács módszer és a bináris keresőfa fogalmát egyesítjük. Ezáltal megoldódott a rács módszer hatékonyság-problémája, amikor az adatok nem egyenletes eloszlásúak. Ez a fa pontokat tartalmaz és ha megfigyeljük felépítésének módszerét kiderül, hogy a tér cellákra való felbontását a pontok határozzák meg. Emiatt a rács szerkezete a beszúrás sorrendjétől függ. Két dimenzióban minden pont-adat egy csomópont a négyágú fában, továbbá minden csomópont egy csomópont típusú rekord, hét darab mezővel. Az első négy mező mutató a csomópont négy leszármazottjára, mindenik megfelelő irányban: NW, NE, SW, SE, azaz ÉNy, ÉK, DNy, DK. Legyen p egy mutató egy csomópontra és c egy keret (cella), akkor ezekre a mezőkre így hivatkozunk: p.child[c], ahol c lehet NW, NE, SW, SE. A következő két mező, x és y tartalmazza a pont koordinátáit, míg az utolsó, name, az illető pont leírását tárolja. A 3.4-es ábra a 3.1-es ábra városainak megfelelő négyágú pontfája. Feltételezzük, hogy minden pont egyedi. Ha egy alkalmazásban megengedettek az ütközések (több pontnak ugyanaz a koordinátája), akkor az adatszerkezet tartalmazhat egy plusz mezőt, ami egy mutató egy listára, ami tartalmazza az ugyanolyan koordinátájú pontokat. 11

12 3.4. ábra. Egy négyágú pontfa és a rekordok amelyeket tárol. 4. Területi négyágú fák pont adatok ábrázolására Egy területet ábrázolhatunk a határainak vagy a belsejének segítségével. A területi négyágú fák a belső ábrázolásra teszik a hangsúlyt. Ezek egy olyan hierarchikus adatszerkezet osztályhoz tartoznak, amely rekurzív felbontáson alapszik. A négyágú pontfák esetében a felosztás pontjait a csomópontok (adatok) jelképezik. Az a feltétel, hogy a keletkezett területek a felosztás során egyforma nagyságúak legyenek, a területi négyágú fához vezet. Ebben a fejezetben azokat a területi négyágú fákat tárgyaljuk, amelyek alkalmasak pont-adatok ábrázolására, MX illetve a PR négyágú fák. 12

13 a) MX négyágú fák Ha a pont-adatok halmaza véges, akkor tekinthetjük úgy, hogy a pontok fekete pixelek a területi négyágú fában. Ennek az ábrázolásmódnak alternatívájaként tekintsük a pontokat, mint nem nulla elemeket egy négyzetes mátrixban. Innen jön az MX elnevezés is. Szerkezete a területi négyágú fához hasonló, azzal a különbséggel, hogy egy levél vagy fehér vagy fekete, annak megfelelően, hogy létezik-e pont-adat a mátrix megfelelő pozíciójában. Tekintsük például a 3.12-es ábrát, amely egy nagyságú MX négyágú fa ábrázolása a 3.1-es városok listájának. Ezt a fát az f(z) = z / 12.5 függvény alkalmazásaként kapjuk meg (az x és y koordinátákra). Az MX négyágú fában minden pont egy l l-es nagyságú négyzetnek felel meg. Úgy tekintjük, hogy a pontok a négyzetek bal alsó sarkában helyezkednek el. Megjegyezzük, hogy a mátrix bal alsó sarka a (0, 0) pozíciónak felel meg. A területi négyágú fával ellentétben, ha egy csomópontnak van négy fekete utóda, nem vonjuk össze, mivel ezáltal adatvesztéshez jutunk. Figyelembe kell vennünk, hogy minden pont egyedi, különböző. Másfelől, ha a négy utód mind fehér akkor az összevonás alkalmazható, mivel egyik sem hordoz információt ábra. Egy MX négyágú fa és az adatok amiket tárol. 13

14 a) PR négyágú fák MX négyágú fákat akkor használhatunk, ha az adathalmazunk diszkrét. Ellenkező esetben nem tudjuk fölhasználni adatbázisunk ábrázolására az MX fákat, mivel nem ismerjük az adatpontok közti lehetséges legkisebb távolságot. Ilyenkor a PR (point region) négyágú fákat használjuk, amelyek az adatokat területek negyedeivel asszociálja, ezért nem kell diszkréteknek lenniük. A PR négyágú fa a területi négyágú fához hasonlóan alakul, azaz a tér egyenlő részekre való rekurzív felbontásán alapszik. A rekurzív felbontást addig alkalmazzuk, amíg mindegyik negyed csak egy adatot tartalmaz. A kettő közti különbség annyi, hogy egy levél vagy fehér (üres), vagy fekete (tartalmaz adatot és a pont koordinátáit). Ha két pont nagyon közel van egymáshoz, akkor a felbontás nagyon mély is lehet. Az ilyen esetek elkerülésére az adatokat csoportosíthatjuk (buckets). Meghatározzuk a csoport c kapacitását. Egy negyedet csak akkor bontunk tovább, ha meghaladta ezt a c kapacitást. PR négyágú fához példaként tekintsük a 3.14-es ábrán levő fát ábra. Egy PR négyágú fa és az adatok amelyeket tárol. 14

15 Területi négyágú fák 1. Bevezetés A négyágú fák egyik legfontosabb típusa a területi négyágú fák. Kétdimenziós bináris adatok (képek) ábrázolására használható, azonban ha szükséges általánosítható színes képekre is. Egy véges kép sorozatos, négy egyenlő részre való lebontására alapul, azaz ha egy negyed tartalmaz 0-ásokat és 1-eseket is, akkor addig folytatjuk a felbontást míg minden negyed csak 0-ásokat, vagy csak 1- eseket tárol. A területi négyágú fákat gyakran használják számítógépes grafikai alkalmazásokban képek tömörebb tárolására. Megjegyezzük, hogy az 1-esek a képelemeknek felelnek meg, míg a 0-ások a területen kívüli pixelek. Példaként tekintsük a 4.1-es ábrát, ahol a megfelelő képet egy nagyságú bináris tömbben tároltuk. Az ábrán látható fa gyökerének mindegyik fia egy negyedet ábrázol (NW, NE, SW, SE). A levelek olyan csomópontok, amelyeket nem kell tovább osztani. A gyökér a fának megfelelő mélységi szinten helyezkedik el, a legalsó szinten (0-s szint) csak pixelek találhatók. A fekete színű csomópontok a kép alkotó részei, a fehér színűek a háttér részei, míg a szürke színűek nem hordoznak konkrét információt, csak azt tudjuk, hogy úgy fekete, mint fehér színű részeket is tartalmaznak. Egy csomópont által ábrázolt terület oldalhosszúságát a megfelelő szint segítségével is megtudhatjuk, sőt ha a fát preorder sorrendben járjuk be, a teljes kép visszaépíthető ábra. a. Egy területet ábrázoló 2 4 x 2 4 bináris tömb, b. a terület maximális blokk felosztásasa, c. a területnek megfelelő négyágú fa. 15

16 PM négyágú fák 1. Bevezetés A PM négyágú fák családja a területeket nem a belsejük, hanem a határaik segítségével ábrázolja. Ebben a fejezetben bemutatjuk ezt a családot, de azokra a területekre hivatkozunk amelyeknek határai egyenes vonalakból állnak. Az adatokat a terület felbontása során keletkezett szomszédos sokszögek hálózata formájában ábrázoljuk (polygonal map). A PM négyágú fákat Samet, Webber és Nelson vezették be, a más típusú négyágú fák ábrázolásakor felmerülő gondok elkerülése végett. Egy ilyen gond például az, hogy csak hozzávetőlegesen ábrázolják az adatokat, mivel a végpontokat pixelekkel ábrázolják, illetve az, hogy bizonyos tulajdonságokat nem lehet velük ábrázolni, például 5 él nem találkozhat ugyanabban a végpontban. A PM négyágú fáknak több verziói is léteznek. Ezek vagy végpont vagy él alapúak, és felépítésük azon az elven alapszik, miszerint a végpont vagy az élek halmazának fokozatos felosztása olyan részhalmazokhoz vezet, amelyek elég egyszerűek ahhoz, hogy adatszerkezetek segítségével ábrázoljuk őket. 2. PM1 négyágú fák A PM 1 négyágú fák végpont alapúak és a területi, illetve a PR négyágú fákhoz hasonló módon épülnek fel. Terület-határok pontos megjelölésére használják, emiatt úthálózatok ábrázolására alkalmas. A területet fokozatosan négy alterületre osztjuk, amíg olyan blokkokat nem kapunk, amelyek csak egy élt tartalmaznak, kivéve azt az esetet mikor két vagy több él találkozik egy végpontban és ez a végpont is a blokkban található. Egy blokk csak egy végpontot tartalmazhat. A felosztás jobb megértésére tekintsük az 5.1-es ábrát, ami tartalmaz egy sokszögtérképet és a neki megfelelő PM 1 blokk felosztást, és az 5.2-es ábrát, ami tartalmazza a sokszögtérkép PM 1 négyágú fáját. 16

17 Ennek az ábrázolásnak az egyik hátránya az, hogy ha két él nagyon közel van egymáshoz, vagy a metszet végpontjuk nagyon közel van egymáshoz, akkor nagyon aprólékos felbontásra lesz szükségünk ábra. Egy egyszerű sokszögtérkép és a neki megfelelő PM 1 blokkfelosztás. A PM 1 négyágú fa meghatározása megadható szigorúbban is, ha a sokszögtérképet egy egyenes élekből álló síkgráfnak tekintjük. Ezek az élek alkotják a végpontokat a metszetüknél. q- él-nek nevezzük azt az élt, amelyet a megfelelő felbontásból kapunk. Ez egy szakaszt határoz meg egy olyan élből indulva, amely átmegy a négyágú fa egy csomópontján. Az 5.1-es ábrán például az EB élnek q-élei: EF, FG, GH, HI, IJ, JK és KB. A végpontok csak E és B-ben vannak, a többi pont csak viszonyítási pont. A PM 1 négyágú fa meghatározását újrafogalmazzuk, megemlítve a következő követelményeket: Egy levél által ábrázolt terület csak egy végpontot tartalmazhat. Ha egy levél tartalmaz egy végpontot, nem tartalmazhat q-éleket, amelyek függetlenek az illető végponttól. Ha egy terület, amely egy levél által van ábrázolva, nem tartalmaz végpontokat, akkor csak egy q-élt tartalmazhat. 17

18 Valamennyi levél a négyágú fában maximális. A PM 1 négyágú fák meghatározása azáltal különbözik a PR négyágú fák meghatározásától, hogy a PM 1 fák éleket ábrázolnak és nem pontokat. Emiatt, ha a felbontás során egy olyan csúcshoz jutunk, amely a fa egy csomópontjának határán fekszik, elköltöztethetjük a csúcsokat az ilyen helyzetek elkerülése végett, vagy tehetünk egy megkötést, hogy bármely területet ábrázoló csomópont bal és alsó határa zárt, míg jobb és felső határa nyílt. Az első megoldás alkalmazásához ismernünk kell a négyágú fa maximális mélységét mielőtt azt felépítenénk, a másodiknak pedig az a hátránya, hogy, ha például három olyan él találkozik egy határon levő csúcsban úgy, hogy kettő a határ egyik részén, s a másik, a határ ellenkező részén levő csomóponton megy keresztül, akkor a felbontásuk a négyágú fa mélységének növekedését eredményezheti. Így egy olyan megkötést teszünk, miszerint valamennyi blokk határa zárt. Ez azt jelenti, hogy, ha egy csúcs két vagy több (maximum négy) csomópont határán fekszik, akkor az összes csomópont tartalmazni fogja. Ezeket a csúcsokat nullhosszúságú éleknek is tekinthetjük ábra. Az 5.1-es ábrának megfelelő PM 1 négyágú fa. Mivel a PM 1 négyágú fákat izolált pontok és vonalak, illetve sokszögtérképek ábrázolására tervezték, csúcsokkal és élekkel dolgoznak. 18

19 3. PMR négyágú fák Míg a PM 1 négyágú fák csúcs alapúak, a PMR négyágú fák él alapúak. Az éleket különböző méretű csomókba (bucket) rendezzük, a csomópontok keresésének megkönnyítése végett. Létezik egy 1 : 1-hez kapcsolat a csomók és a blokkok között. A PMR négyágú fa (Polygonal Map Random) él alapú PM fa. Megengedett, hogy egy blokk változó számú szakaszt tartalmazzon, és ezek metszhetik egymást, metszetük nem fog csomópontnak számítani. Felépítésekor valamennyi szakaszt egymás után beteszünk egy kezdetben üres adatszerkezetbe. A szakaszokat minden olyan blokkba betesszük, amelyet az egyes szakasz metsz, vagy teljesen benne helyezkedik el. A folyamat közben ellenőrizzük a blokkoknak a telítettségi fokát, hogy az ne haladja meg az előre meghatározott maximális hasadási határt. Ha ezt a határt valamelyik blokk túllépte, akkor a blokkot csak egyszer osztjuk fel négy egyenlő részre. Egy szakasz törlésekor ezt kitöröljük minden olyan blokkból amelyet metsz, vagy teljesen benne helyezkedik el. A folyamat közben ellenőrizzük a blokk telítettségi fokát, hogy az ne legyen kisebb, mint az előre meghatározott minimum egyesítési határ. Hogyha ez bekövetkezik, akkor egyesítjük a megfelelő utódokat és rekurzívan alkalmazzuk az egyesítést a keletkezett blokkra és testvéreire is. Az 5.3-as ábrán láthatjuk hogyan is működik a PMR négyágú fába való beszúrás, amikor a maximális hasadási határ egyenlő 2-vel. Megjegyezzük, hogy a PMR fának a végső alakja nem egyedi, ez függ az élek beszúrási sorrendjétől, míg a PM 1 négyágú fánál ez nem fordul elő, a végső alakja egyedi. 19

20 5.3. ábra. PMR blokkfelosztás egy élsorozat esetében, a felépítés lépései. Összefoglalás A dolgozat célja az volt, hogy megismertesse a térbeli adatok tárolására használatos egyik legalkalmasabb adatszerkezetet, a négyágú fát. Mivel az információmennyiség rohamosan nő, a négyágú fák használatának jövője nem kérdőjelezett. Az, hogy az egyforma adatokat képes összevonni, nemcsak a helymegtakarítást, hanem a végrehajtási idő csökkenését is maga után vonja. 20

21 Irodalomjegyzék Finkel, R.A., Bentley, J.L. Quadtrees: A data structure for retrieval on composite keys, Acta Informatica, Hoare, C.A.R. Notes on data structuring, in Structured Programming, Academic Press, London, Hunter, G.M. Efficient computation and data structures for graphics, Ph.D. Dissertation, Department of Electrical Engineering and Computer Science, Princeton University, Princeton, NJ, Hunter, G.M., Steiglitz, K. Operations on images using quadtrees, IEEE Transactions on Pattern Analysis and Machine Intelligence 1, April Ionescu, C. Proiectarea şi analiza structurilor de date spaţiale. Quad-arbori, Presa Universitară Clujeană, Cluj-Napoca, Klinger, A. Patterns and search statistics, Optimizing Methods is Statistics, Academic Press, New York,

Térinformatikai adatszerkezetek

Térinformatikai adatszerkezetek Térinformatikai adatszerkezetek 1. Pont Egy többdimenziós pont reprezentálható sokféle módon. A választott reprezentáció függ attól, hogy milyen alkalmazás során akarjuk használni, és milyen típusú műveleteket

Részletesebben

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

file:///d:/okt/ad/jegyzet/ad1/b+fa.html 1 / 5 2016. 11. 30. 12:58 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes

Részletesebben

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy

Részletesebben

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8. Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás

Részletesebben

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. Testmodellezés Testmodellezés (Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja. A tervezés (modellezés) során megadjuk a objektum geometria

Részletesebben

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbáziskezelés. Indexek, normalizálás NZS 1 Adatbáziskezelés Indexek, normalizálás NZS 1 Fáljszervezés módjai Soros elérés: a rekordok a fájlban tetszőleges sorrendben, például a felvitel sorrendjében helyezkednek el. A rekord azonosítója vagyis

Részletesebben

Érdekes informatika feladatok

Érdekes informatika feladatok A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

Részletesebben

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése Célok: gyors lekérdezés, gyors adatmódosítás, minél kisebb tárolási terület. Kezdetek Nincs általánosan legjobb optimalizáció. Az egyik

Részletesebben

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés

Részletesebben

file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html

file:///d:/apa/okt/ad/jegyzet/ad1/b+fa.html 1 / 6 2018.01.20. 23:23 B+ fák CSci 340: Database & Web systems Home Syllabus Readings Assignments Tests Links Computer Science Hendrix College Az alábbiakban Dr. Carl Burch B+-trees című Internetes tananyagának

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés

Részletesebben

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Gráfelmélet II. Gráfok végigjárása

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Gráfelmélet II. Gráfok végigjárása Gráfelmélet II. Gráfok végigjárása DEFINÍCIÓ: (Séta) A G gráf egy olyan élsorozatát, amelyben a csúcsok és élek többször is szerepelhetnek, sétának nevezzük. Egy lehetséges séta: A; 1; B; 2; C; 3; D; 4;

Részletesebben

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával

Részletesebben

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK 30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá

Részletesebben

Adatszerkezetek 7a. Dr. IványiPéter

Adatszerkezetek 7a. Dr. IványiPéter Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a

Részletesebben

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Egyirányban láncolt lista

Egyirányban láncolt lista Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

7 7, ,22 13,22 13, ,28

7 7, ,22 13,22 13, ,28 Általános keresőfák 7 7,13 13 13 7 20 7 20,22 13,22 13,22 7 20 25 7 20 25,28 Általános keresőfa Az általános keresőfa olyan absztrakt adatszerkezet, amely fa és minden cellájában nem csak egy (adat), hanem

Részletesebben

Programozás alapjai II. (7. ea) C++

Programozás alapjai II. (7. ea) C++ Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31. Regresszió Csorba János Nagyméretű adathalmazok kezelése 2010. március 31. A feladat X magyarázó attribútumok halmaza Y magyarázandó attribútumok) Kérdés: f : X -> Y a kapcsolat pár tanítópontban ismert

Részletesebben

Rendezések. Összehasonlító rendezések

Rendezések. Összehasonlító rendezések Rendezések Összehasonlító rendezések Remdezés - Alapfeladat: Egy A nevű N elemű sorozat elemeinek nagyság szerinti sorrendbe rendezése - Feltételezzük: o A sorozat elemei olyanok, amelyekre a >, relációk

Részletesebben

17. A 2-3 fák és B-fák. 2-3 fák

17. A 2-3 fák és B-fák. 2-3 fák 17. A 2-3 fák és B-fák 2-3 fák Fontos jelentősége, hogy belőlük fejlődtek ki a B-fák. Def.: Minden belső csúcsnak 2 vagy 3 gyermeke van. A levelek egy szinten helyezkednek el. Az adatrekordok/kulcsok csak

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú

Részletesebben

Adatszerkezetek 1. előadás

Adatszerkezetek 1. előadás Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk

Részletesebben

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmusok és adatszerkezetek gyakorlat 07 Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,

Részletesebben

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel Navigáci ció és s mozgástervez stervezés Algoritmusok és alkalmazásaik Osváth Róbert Sorbán Sámuel Feladat Adottak: pálya (C), játékos, játékos ismerethalmaza, kezdőpont, célpont. Pálya szerkezete: akadályokkal

Részletesebben

Cohen-Sutherland vágóalgoritmus

Cohen-Sutherland vágóalgoritmus Vágási algoritmusok Alapprobléma Van egy alakzatunk (szakaszokból felépítve) és van egy "ablakunk" (lehet a monitor, vagy egy téglalap alakú tartomány, vagy ennél szabálytalanabb poligon által határolt

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok

Részletesebben

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. 15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re

Részletesebben

Gráfelméleti alapfogalmak-1

Gráfelméleti alapfogalmak-1 KOMBINATORIKA ELŐADÁS osztatlan matematika tanár hallgatók számára Gráfelméleti alapfogalmak Előadó: Hajnal Péter 2015 1. Egyszerű gráfok Nagyon sok helyzetben egy alaphalmaz elemei között kitűntetett

Részletesebben

Algoritmusok és adatszerkezetek 2.

Algoritmusok és adatszerkezetek 2. Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda

Részletesebben

Térinformatikai adatszerkezetek

Térinformatikai adatszerkezetek Térinformatikai adatszerkezetek Bevezetés A térinformatika célja, hogy grafikus, térképi formához kötve mutasson be gazdasági, társadalmi, politikai és egyéb adatokat, elősegítve ezzel az adott terület

Részletesebben

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések) Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként

Részletesebben

Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok

Részletesebben

Adatbázismodellek. 1. ábra Hierarchikus modell

Adatbázismodellek. 1. ábra Hierarchikus modell Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek,

Részletesebben

III. Gráfok. 1. Irányítatlan gráfok:

III. Gráfok. 1. Irányítatlan gráfok: III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen

Részletesebben

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime? Ugrólisták Ugrólisták Ugrólisták Ugrólisták RSL Insert Example insert(22) with 3 flips 13 8 29 20 10 23 19 11 2 13 22 8 29 20 10 23 19 11 2 Runtime? Ugrólisták Empirical analysis http://www.inf.u-szeged.hu/~tnemeth/alga2/eloadasok/skiplists.pdf

Részletesebben

angolul: greedy algorithms, románul: algoritmi greedy

angolul: greedy algorithms, románul: algoritmi greedy Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város

Részletesebben

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27. Matematika 11 Koordináta geometria Juhász László matematika és fizika szakos középiskolai tanár > o < 2015. szeptember 27. copyright: c Juhász László Ennek a könyvnek a használatát szerzői jog védi. A

Részletesebben

Adatszerkezetek II. 1. előadás

Adatszerkezetek II. 1. előadás Adatszerkezetek II. 1. előadás Gráfok A gráf fogalma: Gráf(P,E): P pontok (csúcsok) és E P P élek halmaza Fogalmak: Irányított gráf : (p 1,p 2 ) E-ből nem következik, hogy (p 2,p 1 ) E Irányítatlan gráf

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Termék modell. Definíció:

Termék modell. Definíció: Definíció: Termék modell Összetett, többfunkciós, integrált modell (számítógépes reprezentáció) amely leír egy műszaki objektumot annak különböző életfázis szakaszaiban: tervezés, gyártás, szerelés, szervízelés,

Részletesebben

Általános algoritmustervezési módszerek

Általános algoritmustervezési módszerek Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás

Részletesebben

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Raszterizáció OpenGL Mely pixelek vannak a primitíven belül fragment generálása minden ilyen pixelre Attribútumok (pl., szín) hozzárendelése

Részletesebben

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Előadó: Pieler Gergely, MSc hallgató, Nyugat-magyarországi Egyetem Konzulens: Bencsik Gergely, PhD hallgató, Nyugat-magyarországi

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik

Részletesebben

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon

Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel. Az objektumok áthaladnak a többi objektumon Bevezetés Ütközés detektálás Elengedhetetlen a játékokban, mozi produkciós eszközökben Nélküle kvantum hatás lép fel Az objektumok áthaladnak a többi objektumon A valósághű megjelenítés része Nem tisztán

Részletesebben

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Adaptív dinamikus szegmentálás idősorok indexeléséhez Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november

Részletesebben

10. előadás Speciális többágú fák

10. előadás Speciális többágú fák 10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.

Részletesebben

Algoritmusok és adatszerkezetek I. 1. előadás

Algoritmusok és adatszerkezetek I. 1. előadás Algoritmusok és adatszerkezetek I 1 előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: elemi (vagy skalár, vagy strukturálatlan) összetett (más szóval strukturált) Strukturálási

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 4 IV. MINTA, ALAPsTATIsZTIKÁK 1. MATEMATIKAI statisztika A matematikai statisztika alapfeladatát nagy általánosságban a következőképpen

Részletesebben

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával) Adatszerkezetek I. 8. előadás (Horváth Gyula anyagai felhasználásával) Kereső- és rendezőfák Közös tulajdonságok: A gyökérelem (vagy kulcsértéke) nagyobb vagy egyenlő minden tőle balra levő elemnél. A

Részletesebben

Láthatósági kérdések

Láthatósági kérdések Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok

Részletesebben

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007 Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

Elemi adatszerkezetek

Elemi adatszerkezetek 2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

Bevezetés a programozásba. 5. Előadás: Tömbök

Bevezetés a programozásba. 5. Előadás: Tömbök Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és

Részletesebben

Súlyozott automaták alkalmazása

Súlyozott automaták alkalmazása Súlyozott automaták alkalmazása képek reprezentációjára Gazdag Zsolt Szegedi Tudományegyetem Számítástudomány Alapjai Tanszék Tartalom Motiváció Fraktáltömörítés Súlyozott véges automaták Képek reprezentációja

Részletesebben

Visszalépéses keresés

Visszalépéses keresés Visszalépéses keresés Backtracking előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Alapvető működése Továbbfejlesztési

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. HA 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) HA 2 Halmazok HA 3 Megjegyzések A halmaz, az elem és az eleme fogalmakat nem definiáljuk, hanem alapfogalmaknak

Részletesebben

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1 Köszönetnyilvánítás Bevezetés Kinek szól a könyv? Elvárt előismeretek A könyv témája A könyv használata A megközelítés alapelvei Törekedjünk az egyszerűségre! Ne optimalizáljunk előre! Felhasználói interfészek

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1 Halmazok 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 2 A fejezet legfontosabb elemei Halmaz megadási módjai Halmazok közti műveletek (metszet,

Részletesebben

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1] Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.

Részletesebben

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság datszerkezetek Bevezetés datszerkezet adatok rendszerének matematikai, logikai modellje elég jó ahhoz, hogy tükrözze a valós kapcsolatokat elég egyszerű a kezeléshez datszerkezet típusok Tömbök lineáris

Részletesebben

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E 5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus

Részletesebben

I.5. A LOGIKAI FÜGGVÉNYEK EGYSZERŰSÍTÉSE (MINIMALIZÁCIÓ)

I.5. A LOGIKAI FÜGGVÉNYEK EGYSZERŰSÍTÉSE (MINIMALIZÁCIÓ) I.5. LOGIKI FÜGGVÉNEK EGSERŰSÍTÉSE (MINIMLIÁCIÓ) Nem mindegy, hogy a logikai függvényeket mennyi erőforrás felhasználásával valósítjuk meg. Előnyös, ha kevesebb logikai kaput alkalmazunk ugyanarra a feladatra,

Részletesebben

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet 7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát

Részletesebben

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék 9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,

Részletesebben

Klár Gergely 2010/2011. tavaszi félév

Klár Gergely 2010/2011. tavaszi félév Számítógépes Grafika Klár Gergely tremere@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2010/2011. tavaszi félév Tartalom Pont 1 Pont 2 3 4 5 Tartalom Pont Descartes-koordináták Homogén koordináták

Részletesebben

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával) Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit

Részletesebben

Arany Dániel Matematikai Tanulóverseny 2010/2011-es tanév 1. forduló haladók III. kategória

Arany Dániel Matematikai Tanulóverseny 2010/2011-es tanév 1. forduló haladók III. kategória Bolyai János Matematikai Társulat Oktatásért Közalapítvány támogatásával Arany Dániel Matematikai Tanulóverseny 2010/2011-es tanév 1. forduló haladók III. kategória Megoldások és javítási útmutató 1. Határozzuk

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb

Részletesebben

Láncolt listák Témakörök. Lista alapfogalmak

Láncolt listák Témakörök. Lista alapfogalmak Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök

Részletesebben

7. Régió alapú szegmentálás

7. Régió alapú szegmentálás Digitális képek szegmentálása 7. Régió alapú szegmentálás Kató Zoltán http://www.cab.u-szeged.hu/~kato/segmentation/ Szegmentálási kritériumok Particionáljuk a képet az alábbi kritériumokat kielégítő régiókba

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,

Részletesebben

Haladó rendezések. PPT 2007/2008 tavasz.

Haladó rendezések. PPT 2007/2008 tavasz. Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.

Részletesebben

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatbázis-kezelő rendszerek. dr. Siki Zoltán Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati

Részletesebben