Feladatok

  1. Írjon meg egy osztályt, mely segítségével meghatározza, hogy egy konkrét gráf esetén a korrelációs klaszterezés állapottérgráfjának hány lokális és globális minimumhelye van! Tipp: ehhez meg kell határozni az állapottér összes elemét, illetve azok szomszédjait. A normalizált alak, azaz a redukált növekedési sztring, használatával érdemes az állapottér elemeit meghatározni.

  2. Írja át az 5.5 alfejezetben ismertetett osztályokat, hogy a program ne csak egy előre megadott fájlsorozatból dolgozzon, hanem futáskor generálja a mátrixokat, azokat tartsa a memóriában, míg az 5.3.4.2. részben megadott q minden lehetséges értékét fel nem veszi! A különböző mátrixok száma, melyet egy-egy futás során generál a program, legyen a program paramétere!

  3. Készítsen a fejezetben szereplő ábrákhoz hasonlóakat az előző feladat megoldása során nyert programmal!

  4. Írja át az 5.5 alfejezetben ismertetett osztályokat, hogy a program ne paraméterekként vegye át az alkalmazni kívánt módszereket, az eredmények feldolgozásának formáját és feldolgozni kívánt gráfokat (vagy azok jellemzőit), hanem egy szerverről kérje le a HTTP GET protokolljával!

  5. Egészítse ki az előbbi programot, hogy a megoldás jellemzőit a HTTP POST metódusával adja át a szervernek!

  6. Írjon meg egy szerverprogramot, mely az előbbi feladatban szereplő kliensprogram kérését feldolgozza! A feldolgozni kívánt gráf adatait, vagy jellemzőit egy konfigurációs fájlból töltse be, és minden egyes gráfra vonatkozó számítást csak egy kliensnek adjon át. Ha a klienstől megérkezett a válasz, akkor törölje a feladatot! A szerver leállításakor a program kezelje külön a még ki nem osztott, a vissza nem kapott válaszú és a törölt feladatokat.

  7. Az előző alfejezetben szereplő tesztekhez hasonló teszteket futtasson egy szerver-sok kliens környezetben!

  8. Ha adottak többprocesszoros kliensek, akkor a sokaságokon alapuló módszereket írja át úgy, hogy bontsa szálakra a program lényeges ciklusait, melyek egymással párhuzamosan futhatnak! Tipp: korlátozza a szálak számát a processzor magjainak száma alapján!

  9. Hasonlítsa össze a párhuzamos működésű program sebességét az egyszálas programéval a különféle módszerek esetén!

  10. Készítse el a sokaságokon alapuló módszerek olyan variánsait, ahol nem kezeli az teljes sokaságot egyben! Egy-egy processzoron csak a sokaság egy részére hajtja végre a módszert, és a legjobb egyedeket véletlen módon átadja egy másik sokaságnak!