• Nem Talált Eredményt

Jel¨oltek t´amogatotts´ag´anak meghat´aroz´asa

In document Magyar nyelv˝ u irodalom (Pldal 74-78)

4. Gyakori elemhalmazok 62

4.2. Az Apriori algoritmus

4.2.2. Jel¨oltek t´amogatotts´ag´anak meghat´aroz´asa

A jel¨oltek el˝ofordul´asait ¨ossze kell sz´amolni. Ehhez egyes´evel vizsg´aljuk a kosarakat, ´es azon jel¨oltek sz´aml´al´oit n¨ovelj¨uk eggyel, amelyeket tartalmaz a kos´ar.

1- ´es 2-elem˝u jel¨oltek t´amogatotts´aga

K¨onny˝u dolgunk van, amennyiben a jel¨oltek m´erete 1 vagy 2. A feladatot megoldhatjuk egy olyan lista, illetve f´elt¨omb seg´ıts´eg´evel, amelyekben a sz´aml´al´okat t´aroljuk. Az elemek t´amogatotts´ag´anak meghat´aroz´as´an´al a lista j-edik eleme t´arolja a j-edik elem sz´aml´al´oj´at.

A tranzakci´ok feldolgoz´as´an´al v´egigmegy¨unk a tranzakci´o elemein ´es n¨ovelj¨uk a megfelel˝o cell´akban tal´alhat´o sz´aml´al´okat.

Az els˝o v´egigolvas´as ut´an kiv´alogathatjuk a gyakori elemeket. A tov´abbiakban m´ar csak ezekkel az elemekkel dolgozunk, ´ıgy ´uj sorsz´amokat adhatunk nekik a [1..|GY1|] intervallumb´ol (eml´ekeztet˝o¨ul GYj-vel jel¨olj¨uk a j-elem˝u gyakori mint´akat). Az l ´es k-adik elemekb˝ol ´all´o p´ar

. . . . .

4.4. ´abra. Adatstrukt´ur´ak az 1- ´es 2-elem˝u jel¨oltek t´amogatotts´ag´anak meghat´aroz´as´ahoz.

t´amogatotts´ag´at a t¨omb l-edik sor´anak (k−l)-edik eleme t´arolja (az ´altal´anoss´ag megs´ert´ese n´elk¨ul feltehetj¨uk, hogyl < k).

Ha egy sz´aml´al´o 4 byte-ot foglal, akkor a t¨omb helyig´enye nagyj´ab´ol 4· |GY21|

byte. Azon elemp´arokhoz tartoz´o t¨ombelem ´ert´eke, amelyek sosem fordulnak el˝o egy¨utt, 0 lesz. Helyet takar´ıthatunk meg, hogy ha csak akkor vessz¨uk fel egy jel¨oltp´ar sz´aml´al´oj´at, ha a p´art leg-al´abb egy tranzakci´o tartalmazza [101]. A p´arok t´amogatotts´ag´anak meghat´aroz´asa kevesebb mem´ori´at fog ig´enyelni, de ezzel egy¨utt lassabb is lesz.

Nagyobb elemhalmazok t´amogatotts´aga

Vizsg´aljuk meg r´eszletesebben az 5. sort. Adott egy tranzakci´o ´es `-m´eret˝u jel¨oltek egy hal-maza. Feladatunk meghat´arozni azon jel¨olteket, amelyek a tranzakci´o r´eszhalmazai. Megold-hatjuk ezt egyszer˝uen ´ugy, hogy a jel¨olteket egyes´evel vessz¨uk, ´es eld¨ontj¨uk, hogy tartalmazza-e

˝oket a tranzakci´o. Rendezett halmazban rendezett r´eszhalmaz keres´ese elemi feladat.

jel¨olt :

Vegy¨unk fel k´et mutat´ot, amelyek a kos´ar, illetve a jel¨olt elemein fognak v´egighaladni. Kezdetben mu-tasson mindk´et mutat´o az elemhalmazok els˝o elemeire.

Amennyiben a k´et mutat´o ´altal mutatott elemek meg-egyeznek, akkor l´eptess¨uk mindk´et mutat´ot a k¨ovet-kez˝o elemre. Ha a tranzakci´oban tal´alhat´o elem kisebb sorsz´am´u, akkor csak a kos´ar mutat´oj´at l´eptess¨uk, el-lenkez˝o esetben pedig ´alljunk meg ; ekkor a kos´ar biz-tosan nem tartalmazza a jel¨oltet. Ha a jel¨olt utols´o eleme is megegyezik a kos´ar valamelyik elem´evel, ak-kor a kos´ar tartalmazza a jel¨oltet.

Ennek az egyszer˝u m´odszernek a h´atr´anya, hogy sok jel¨olt eset´en lass´u, hiszen annyiszor kell a tranzakci´o elemein v´egighaladni, amennyi a jel¨oltek sz´ama. A gyorsabb m˝uk¨od´es ´erdek´eben a jel¨olteket sz´of´aban vagy hash-f´aban (hash-tree) c´elszer˝u t´arolni. A sz´of´at szok´as prefix-f´anak vagy lexikografikus f´anak is h´ıvni [2]. Az eredetiApriori implement´aci´oban hash-f´at alkalmaz-tak, azonban tesztek bizony´ıtj´ak, hogy a sz´ofa gyorsabb m˝uk¨od´est eredm´enyez, mint a hash-fa.

A hash-fa sz´of´aval val´o helyettes´ıt´es´er˝ol m´ar a [96]-ban ´ırtak, ahol a sz´of´at alkalmaz´oApriori algoritmust SEAR-nek nevezt´ek el. A tov´abbiakban a sz´of´aban val´o keres´est ismertetj¨uk (a sz´of´ak fel´ep´ıt´es´er˝ol ´es t´ıpusair´ol az alapfogalmak 2.8.1 r´esz´eben m´ar sz´oltunk).

A B

C D

C D

B C D

4.5. ´abra. AzABC, ABD, ACD, BCD jel¨olteket t´arol´o sz´ofa.

Asz´ofa´eleinek c´ımk´ei elemek lesznek. Minden cs´ucs egy elemhalmazt reprezent´al, amelynek elemei a gy¨ok´erb˝ol a cs´ucsig vezet˝o ´ut ´eleinek c´ımk´eivel egyeznek meg. Feltehetj¨uk, hogy az egy cs´ucsb´ol indul´o ´elek, tov´abb´a az egy ´uton tal´alhat´o ´elek c´ımk´ek szerint rendezve vannak (pl.

legnagyobb elem az els˝o helyen). A jel¨oltek sz´aml´al´oit a jel¨oltet reprezent´al´o lev´elhez rendelj¨uk.

A 4.5. ´abr´an egy sz´of´at l´athatunk.

Attranzakci´oban az`-elem˝u jel¨olteket ´ugy tal´aljuk meg, hogy a jel¨olteket le´ır´o fa gy¨oker´eb˝ol kiindulva, rekurz´ıv m´odon bej´arunk bizonyos r´eszf´akat. Ha egy dszint˝u bels˝o cs´ucshoz a tranz-akci´o j-edik elem´en kereszt¨ul jutunk, akkor azon ´elein kereszt¨ul l´ep¨unk eggyel m´elyebb szintre, amelyeknek c´ımk´eje megegyezik a tranzakci´o j0-edik elem´evel, aholj < j0≤ |t|−`+d (ugyanis

`−d elemre m´eg sz¨uks´eg van ahhoz, hogy lev´elbe ´erj¨unk). Ha ily m´odon eljutunk egy ` szint˝u cs´ucshoz, az azt jelenti, hogy a cs´ucs ´altal reprezent´alt elemhalmazt tartalmazzat, ´ıgy ennek a lev´elnek a sz´aml´al´oj´at kell n¨oveln¨unk eggyel.

A sz´of´at prefix f´anak is szokt´ak h´ıvni, ami arra utal, hogy a k¨oz¨os prefixeket csak egyszer t´arolja. Ett˝ol lesz gyorsabb a sz´of´as t´amogatotts´ag-meghat´aroz´as a naiv m´odszern´el. A k¨oz¨os prefixeket ¨osszevonjuk, ´es csak egyszer foglalkozunk vel¨uk.

A sz´ofa nagy el˝onye a gyors t´amogatotts´ag-meghat´aroz´as mellett, hogy a jel¨olt-el˝o´all´ıt´ast is t´amogatja. Tudjuk, hogy k´et gyakori elemhalmaz akkor lesz gener´ator, ha a legnagyobb sorsz´am´u elem¨uk elhagy´as´aval ugyanazt az elemhalmazt kapjuk, vagy m´as szavakkal, a k´et gyakori elemhalmaz `−1 hossz´u prefixei megegyeznek. A t´amogatotts´ag-meghat´aroz´as´aban haszn´alt sz´of´at felhaszn´alhatjuk a k¨ovetkez˝o iter´aci´os l´ep´es jel¨oltjeinek az el˝o´all´ıt´as´ara, hiszen a sz´ofa t´arolja a jel¨olt-el˝o´all´ıt´ashoz sz¨uks´eges gyakori elemhalmazokat.

Az eg´esz algoritmus alatt teh´at egyetlen sz´of´at tartunk karban, amely az algoritmus kezde-tekor csak egy cs´ucsb´ol ´all (ez reprezent´alja az ¨ures halmazt). A t´amogatotts´ag-meghat´aroz´as ut´an t¨or¨olj¨uk azon leveleket, amelyek sz´aml´al´oja kisebbmin supp-n´al. Az iter´aci´os l´ep´es v´eg´ere kialakul´o sz´ofa alapj´an el˝o´all´ıtjuk a jel¨olteket, amely sor´an a sz´ofa ´uj, eggyel m´elyebb szinten l´ev˝o levelekkel b˝ov¨ul. A jel¨olt-el˝o´all´ıt´as sor´an arra is lehet˝os´eg¨unk van, hogy az el˝oz˝o iter´aci´oban gyakorinak tal´alt elemhalmazokat ´es azok sz´aml´al´oit ki´ırjuk (a kimenetre vagy a h´att´ert´arol´ora).

A rendez´es hat´asa az Apriori algoritmusra

Amennyiben a sz´ofa hat´ekony adatstrukt´ura sorozatok t´arol´as´ara, ´es gyors visszakeres´es´ere, akkor ugyanez mondhat´o el elemhalmazok eset´ere is. Ha teh´at elemhalmazok adottak ´es az a feladat, hogy gyorsan meg´allap´ıtsuk, hogy egy elemhalmaz szerepel-e a megadottak k¨oz¨ott, akkor el´eg defini´alnunk az elemeken egy teljes rendez´est, ami alapj´an a halmazokat sorozatokk´a alak´ıthatjuk.

K¨ul¨onb¨oz˝o rendez´esek k¨ul¨onb¨oz˝o sorozatokat ´all´ıtanak el˝o, amelyek k¨ul¨onb¨oz˝o sz´of´akat eredm´enyeznek. Erre mutat p´eld´at a k¨ovetkez˝o ´abra, ahol k´et olyan sz´of´at l´athatunk, amelyek

a AB, AC elemhalmazokat t´arolj´ak. Az els˝o sz´ofa az ABC szerint cs¨okken˝o sorrendet haszn´al (C≺B≺A), m´ıg a m´asodik ennek ellenkez˝oj´et.

0

4.6. ´abra. P´elda : k¨ul¨onb¨oz˝o rendez´est haszn´al´o sz´of´ak

Egy sz´ofa mem´oriaig´enye ar´anyos a sz´ofa pontjainak sz´am´aval, ´ıgy jogos az az ig´eny, hogy azt a teljes rendez´est v´alasszuk, amely a legkevesebb pont´u, azaz minim´alis m´eret˝u sz´of´at adja.

Ez az ´un. minim´alis sz´ofa el˝o´all´ıt´as´anak feladata. Sajnos ez egy neh´ez feladat.

4.2. t´etel. A minim´alis sz´ofa probl´ema NP-neh´ez .

Eredetileg a feladatot n-esekre bizony´ıtott´ak, de ebb˝ol k¨ovetkezik, hogy halmazokra is

´erv´enyes. Legyen ugyanis az alaphalmaz I. Ekkor minden halmazt felfoghatunk, mint egy |I| hossz´u bin´aris ´ert´ekeket tartalmaz´o vektort.

A fenti p´eld´at szeml´elve az embernek az az ´erz´ese t´amad, hogy az a rendez´es adja a legkeve-sebb cs´ucs´u sz´of´at, amelyeben az elemek a halmazokban val´o el˝ofordul´asok sz´am´anak ar´any´aban cs¨okken˝o sorba vannak rendezve. Ugyanis a gyakori elemek fognak a halmazok kapott sorozatok elej´ere ker¨ulni, ´es ezek az elemek, mivel gyakoriak sok sorozat elej´en lesznek megtal´alhat´ok. A sz´ofa a k¨oz¨os prefixeket csak egyszer t´arolja, ´ıgy akkor lesz a sz´ofa m´erete v´arhat´oan a legkisebb, ha min´el t¨obb sorozatnak van k¨oz¨os prefixe. Az el˝oz˝o ´abra is ezt sugallta.

Sajnos a fenti m´odon kapott sz´ofa nem felt´etlen¨ul adja a legkevesebb pontot tartalmaz´o sz´of´at. Ezt a legegyszer˝ubben egy ellenp´eld´aval tudjuk bizony´ıtani. Legyenek a halmazaink a k¨ovetkez˝oek: AB,AC,CZ,BCZ,BZ, Z. AZ elem gyakoris´aga 4, aB, C-´e 3 ´es az Aelem´e 2.

Ha felrajzoljuk ezen gyakoris´agok alapj´an kapott rendez´es (Z > B > C > A, de a C, B elemek sorrende tetsz˝oleges lehet) szerinti sz´of´at, akkor a bal oldali sz´of´at kapjuk. Ha az A ´es B, C elemek sorrendj´et felcser´elj¨uk, akkor eggyel kevesebb pontot tartalmaz´o sz´of´at kapunk (jobb oldal).

4.7. ´abra. Ellenp´elda arra, hogy az el˝ofordul´as szerinti cs¨okken˝o sorrend adja a minim´alis m´eret˝u sz´of´at

Tapasztalatok alapj´an gyakoris´ag szerint cs¨okken˝o rendez´es kisebb sz´of´at eredm´enyez, mint a gyakoris´ag szerint n¨ovekv˝o rendez´es, vagy m´as v´eletlenszer˝uen megv´alasztott rendez´esek.

Ennek ellen´ere olyan sz´of´at c´elszer˝u alkalmazni, amelyben az elemeken ´ertelmezett rendez´es a gyakoris´ag szerint n¨ovekv˝o sorrendnek felel meg. Ennek ugyanis k´et el˝onye van. Egyr´eszr˝ol a sz´ofa pontjai kisebbek lesznek (kevesebb ´el indul ki bel˝ol¨uk), de ami m´eg fontosabb, hogy a ritka elemek lesznek k¨ozel a gy¨ok´erhez. A ritka elemekkel kevesebb kos´arbeli elem fog egyezni, ez´altal a sz´ofa kisebb r´esz´et j´arjuk be a t´amogatott jel¨oltek meghat´aroz´asa sor´an.

A tov´abbiakban bemutatunk n´eh´any gyors´ıt´asi ¨otletet, amelynek seg´ıts´eg´evel nagym´ert´ekben lecs¨okkenthet˝o a sz´ofa alap´uApriorialgoritmus fut´asi ideje ´es mem´oriaig´enye.

In document Magyar nyelv˝ u irodalom (Pldal 74-78)