Feladványkészítés reprodukció
segítségével
Ha a második típusú redukcióra gondolunk (a
feladványból egy elem törlésével keletkezett táblát vettük az eggyel kisebb
elemű feladványok keresési alapjául), akkor az is eszünkbe juthat, vajon
mennyire segít a generálásban egy ugyanolyan elemszámú feladvány, mint keresési
alap. Ezt a módszert én reprodukciónak
fogom nevezni. A feladat tehát a következő: készítsünk valamilyen módszerrel
néhány (vagy akár sok) ugyanolyan elemszámú feladványt, és ezek közül válasszunk
ki egyet egy újabb feladvány előállításához. Az előző lapon 18-as feladványokat
állítottunk elő. Ezekből készítsünk továbbiakat reprodukcióval. A generáláskor
használjuk az SH és PP metódusokat. A képernyőn hihetetlen
dolog látható.
A program 120 másodperc alatt 1500 darab 18-as
feladványt állított elő. Hogy ez miért nem látszik a képernyőn
a szokásos módon, a nagy területű ListBox-ban? Mert
csak minden 100-adikra vonatkozó információt ír ki a program. Figyeljünk még
egy-két dologra: generáláskor ugyanazt az elemet többször is kiválaszthatja
(Egyszer olvas – kikapcsolva) és a generáltat nem vizsgálja meg, hogy létezik-e
már az adatbázisban (Egyszer ír – kikapcsolva).
A képernyőn az is megjelenik, hogy a gép óránként 38.571,48 darab feladványt képes elkészíteni. (Ez azért nem
semmi, és ráadásul 18-ast). Az öröm azért ezért ennyire nem felhőtlen. A
Feladványkezelőben töröljük ki a keletkezett feladványok közül az ismétléseket.
Íme az eredmény:
De még így is 900 különböző feladványt kaptunk. Azaz a
valódi sebesség 27000 feladvány óránként. Megállapíthatjuk, hogy az ugyanolyan
elemszámú feladvány nagy segítséget ad további feladványok generálásához. Már
most jelezném, hogy az így előállított feladványok kapcsolatát azonban célszerű
megvizsgálni.