A DIC implementációjának elkészítéséhez a referencia APRIORI implementációt írjuk át! Az egy- és kételemű gyakori elemhalmazok meghatározásához használjuk az APRIOIRI módszert. A DIC ötletet csak a háromnál nagyobb elemű halmazoknál alkalmazzuk. Paraméterben lehessen megadni, hogy mennyi az állomások mennyi tranzakció (store_input=true esetén szűrt tranzakció) után helyezkednek el egymástól.
Használjuk az APRIORI-ban implementált szófát.
Használjunk STL tárolókat és algoritmusokat.
Minden program C++ nyelven készüljön. A programnak 3 kötelező paramétere legyen: A első paraméter a bementi fájl, második a kimeneti, a harmadik pedig a gyakorisági küszöb. Ha az algoritmus egyéb paramétereket vár, akkor ezeket a három kötelező paraméter után lehessen megadni.
A bementi-, kimeneti fájlformátum tekintetében kövessük a referencia APRIORI implementációt. A hallgató szabadon felhasználhatja a referenciaprogram bementi-, kimeneti fájl kezelését végző eljárásait (vagy akár a paraméterkezelés programsorait).
A bemeneti adatbázisban minden sor külön kosárnak felel meg. Az elemeket nemnegatív egész számok jellemzik. Minden számot 4 byte-on tárolunk, ezért ne szerepeljen 232-nél nagyobb szám a számok között. Bármely nemszám karaktert a program elválasztójelnek vesz. A bemenet feldolgozását végző eljárás nem követeli meg, hogy a sorokban található számok nagyság szerint rendezve legyenek. Példa bemeneti adatbázisra:
3 0 8 4 0 2 8 4 28 4897 176 38 98 67 8 76
A kimeneti fájlban - némi információ mellett - a gyakori elemhalmazok és támogatottságaik szerepeljenek. Minden gyakori elemhalmaz külön sorban szerepeljen, és az elemek szóközzel legyenek elválasztva. Az utolsó elem után egy szóköz majd a támogatottság következzen zárójelekkel határolva. Példa a helyes kimeneti fájlra:
Frequent 0-itemsets: itemset (occurrence) {} (990002) Frequent 1-itemsets: itemset (occurrence) 7 (86898) 218 (88598) 1 (197522) 11 (364065) 3 (450031) 6 (601374) Frequent 2-itemsets: itemset (occurrence) 1 11 (91882) 1 3 (84660) 1 6 (132113) 11 3 (161286) 11 6 (324013) 3 6 (265180) Frequent 3-itemsets: itemset (occurrence) 1 11 6 (86092) 11 3 6 (143682)Látható, hogy az üres halmazt a {} jellel jelöljük.