Belépés »

Menü

Korábbi

reklámfejléc
GSM

Letöltések

2011 2010

Betöltés...

Itt töltheted le a feladat megoldásához szükséges generáló- és gyűjtőszerver, valamint a példaprogram telepítőjét.

Generátor
Letöltés (.exe, 1,03 MB)
Hiányos sudokutáblákat generál és elküldi a versenyprogramnak.

Példaprogram
Letöltés (.exe, 1,12 MB)
Egy példa a versenyprogramra.

Szerver
Letöltés (.exe, 1,16 MB)
Fogadja a versenyprogramtól a feldolgozott adatokat.

Értékelő
Letöltés (.exe, 1,52 MB)
Begyűjti a hatékonyságadatokat a szervertől és feltölti a honlapra.

Dokumentáció
Letöltés (.pdf, 136 KB)
A fenti négy program dokumentációja.

 

Kérdések és válaszok

Q: A generátornak a kiírásban szerepel a címe, de a kockákat fogadó szerveré nem. Ez milyen IP címen és porton várja az adatokat? A példaprogramban is megadott localhost címen? Esetleg, mint a példaprogramban is, konfigolhatónak kéne lennie?
A: Igen, a generátor IP címe a minta kedvéért szerepel. Ennek az az oka, hogy multicast címet használunk annak érdekében, hogy a versenyprogramokat pontosan azonos körülmények között, egyidőben tudjuk tesztelni. Ha nem esik nehezére, akkor jó lenne, ha be tudnánk állítani a program indításakor az eredményszerver IP címét, ami előreláthatólag 10.4.20.14 lesz. A localhostos megoldás sajnos meghiúsítja az összehasonlítható fogyasztásmérést, így a fogadó szerver nem futhat a versenyprogrammal azonos gépen. A mindenhol használható tesztrendszer és a fejlesztés érdekében alakítottuk ki az egy gépről használható rendszert, mert nem biztos, hogy tud a versenyző 3 db számítógépet üzemeltetni a tesztelés idején.

Q: Milyen jellegű dokumentációt várnak a beadott programhoz? Csak telepítési és felhasználói dokumentációt, rendszertervet, esetleg csak a kitöltő algoritmus dokumentációját?
A: A dokumentációban feltétlenül várjuk a
- telepítési leírást,
- használati utasítást,
- és a program felépítéséről szóló rövid összefoglalót, ami kitér az energiamegtakarítási módszerekre is.

Q: Miről ismerhető fel, hogy az adatok küldése befejeződött? Van esetleg valamilyen jel? Például az utolsó küldött tábla minden eleme 0?
A: Amennyiben az adatok alatt kitöltetlen táblákat ért, akkor azok küldésének nincs vége, folyamatosan jönnek a verseny kezdetétől a végéig. A generátorból folyamatosan jönnek a táblák akár 30-60 órán keresztül is, amíg le nem állítja!

Q: Mindenképpen 9-cel osztható számú tábla érkezik a generátortól?
A: Azt feltételezve, hogy 30 óra volt a futási idő, a generátor 108000 táblát generál.

Q: Tegyük fel, hogy a program 9-nél több táblát nem illeszt kockává valamilyen rendezési szempont miatt. Ha ezekből 9-es csoportokat képzek, akkor valamennyi pont jár majd, azaz ez többet ér, mintha nem kerülne felhasználásra?
A: Feltételezve, hogy 30 óra volt a futási idő, azaz 108000 generált táblát kapott, ennyi helyett Ön összesen 9 db táblát használt fel, a többit - 107991 darabot - pedig kidobott. Sajnos ez igen rossz eredmény!

Q: A CubeID értéke tetszőlegesen megválasztható?
A: CubeID értéke tetszőleges, de nem lehet több kockának azonos az ID-je!

Q: Ha a program egyes sudoku mezőket nem tud kitölteni, a küldésnél milyen számjegyek szerepeljenek az adott helyeken? Nullák?
A: Igen, nullák szerepelhetnek a táblában. De ezt nem tanácsoljuk, mert a 0-ás mező biztosan nem hoz egyetlen pontot sem, egy hibás érték viszont nem biztos, hogy minden szempontból értékelhetetlen. 0-ás értékek küldése NAGYON nem éri meg, nem csak azért, mert önmaga nem hoz egy pontot sem, de ráadásul ütközik az összes többi számmal is (azaz a vele egy sorban levő értékek egyike sem kap azért a sorért pontot, hasonlóan az oszlopok, négyzetek sem.).

Q: Ha egy feladvány többféleképpen megoldható, akkor az értékelésnél melyik megoldás számít? A saját megoldás vagy a generátor által adott megoldás (ha van ilyen)?
A: A versenyprogramnak kell kiválasztani a legjobb megoldást. Minden tábla csak egyszer használható fel a kocka építésénél.

Q: Lehetséges, hogy egy feladványt nem lehet megoldani? Ezt hogyan jelölje a program?
A: Lehetséges, hogy a feladvány nem megoldható! Töltse ki az értékelési rendszer szerint legjobban, a lehető legkisebb hibával, a legnagyobb pontérték elérése érdekében.

Q: Azzal kapcsolatban lenne egy kérdésem, hogy amíg a feltöltött programot a kiértékelésre szánt számítógépre telepítik, lesz-e annak elérhető internet kapcsolata. Konkrétan a .Net 4.0 miatt lenne rá szükség, mert ha abból a teljeset (internet elérés nélkülit) integrálom a telepítőbe, akkor a mérete meghaladja a 10 MB-os korlátot.
A: A telepítési idő alatt természetesen van internet kapcsolat, így a .Net telepítőanyag letölthető!

Q: A nyilvános tesztidőszak vége (febr. 20.), illetve a beadási határidő (márc. 7.) mit jelent, melyik a valós határidő a program elkészüléséig és beadásáig?
A: A nyilvános tesztidőszak alatt lehetősége van minden versenyzőnek "kipróbálni" a rendszerét. A kipróbálás azt jelenti, hogy feltölti a pályamunkát a honlapra és a verseny szervezők az értékelő rendszerben lefuttatják és az eredményt megjelenítik a honlapon. Így tesztelhető, hogy a versenyprogram működik-e a kiértékelő rendszeren. Abban az esetben, ha bármilyen probléma adódik, pl. hiányzik az egyik, futtatáshoz szükséges komponens, hibaüzenettel leáll a program, vagy bármi más technikai hiba adódik, a szervezők értesítik erről a versenyző. Ez a lehetőség segít az ismeretlen környezet használatában.

Q: A versenygépen milyen keretrendszer lesz elérhető?
A: Eredetileg csak a következő környezetet biztosítjuk: 

Minden mást a versenyprogram telepítőjének kell feltennie.

Q: Számít-e a beküldött 3D-s kockák mennyisége? Tehát beküldök egy 90-100%-os kockát (sok idő után), majd kikapcsolom a teljes számítógépet, azt hogy értékelik? Eredmény akár 100%, az energiafogyasztás pedig kevés. Vagy az energiafogyasztást a beküldött kockák számával osztják? Mennyiben számít az energiafelhasználás a helyezésben?
A:

Q: A tesztidőszak alatt is telepítővel kell beküldeni a programot tesztelésre, vagy elég csak egy exe fájlt, vagy ha több fájlból áll, akkor egy zip fájlba becsomagolva?
A: Amennyiben az exe önállóan fut és nem használ kívülálló dll-t, ocx-et vagy mást, akkor elegendő azt beküldeni. Az install előírása csak azért van, hogy egyetlen eljárással össze lehessen álítani a működő változatot egy tetszőleges gépen.

Q: Kollégámmal párhuzamosan kezdtünk el implementálni egy Sudoku megoldó algoritmust, ő Java, én C++ nyelven. A módszer több metódussal dolgozik. Miután megvalósítottuk az elsőt, méréseket végeztünk:

Memóriaigény: Java: 28MB C++: <1MB
Futási idő: Java: ~3ms C++: ~40ms
A Javas program beépített adatszerkezeteket használ, a C++-os programhoz dinamikus lefoglalású 3D mátrixot írtam. A kérdésem az, hogy energiafogyasztás szempontjából, ezen paraméterek ismeretében, melyik program lesz a hatékonyabb? Ennek függvényében folytatnánk a fejlesztést.
A: Tippet nem adhatok, a javaslatom az, hogy:
1.) Mérjék meg egy gépen mondjuk 10 óra futtatás után a fogyasztást háztartási fogyasztásmérő segítségével. Máris megvan az eredmény, és lehet folytatni a fejlesztést!
2.) Küldjék el a megoldást és az eredeti versenykörülmények között megvizsgáljuk, majd a honlapon közzétesszük az eredményt!

Q: Ha elindítom a megoldo.exe-t, az ablak meg sem jelenik, hanem egy "no route to host" üzenetablak jön, majd a windows teljesen elnyeli az alkalmazást.
A: Valószínűleg nincs a gépen működő konfigurált hálózat, így lehetetlen a lokális adatátvitel létrehozása is.

Q: Mennyi ideig fog futni a teszteléskor a program?
A: Pontos időhatárt nem tudunk mondani, mert a tesztelés számottevő különbség megállapításáig tart. Tavaly a 40 órás tesztfázis után kialakult holtversenyt további futtatással döntöttük el, idén sem lesz ez másképpen.

Q: Lehet-e arra számítani, hogy a verseny program administrator módban fut?

A: Igen, minden versenyprogram a saját gépén administrator jogosultságot kap.

Q: A "Peremfeltételek" c. részben említett "táblák hibás kitöltése" alatt azt kell érteni, hogy a generátor kitölthetetlen táblákat is adhat?
A: Bármilyen hiba az eredményben ebbe a kategóriába esik attól függetlenül, hogy a hibát a generátor vagy a versenyprogram okozta.

Q: A több pályamunka beküldése esetén mindegyik beleszámít a versenybe, vagy a végén csak a legjobb verzió lesz értékelve?
A: Természetesen minden pályamunkát értékelünk, de nem lehetséges, hogy az összes díjat egyetlen versenyző vagy csapat vigye el.

Q: Kizáró feltétel-e, hogy a Sudoku táblák valamelyike hibákat tartalmaz?
A: Nem. Minimális számú hibára kell törekedni!

Q: Szabályos bootolhatóra megírni a versenyprogramot, tehát pl. egy butított Linux alatt fusson?
A: A szervezőbizottsággal megbeszélve arra jutottunk, hogy Windowstól eltérő operációs rendszer használata esetén a pályamunka eredménye nem hasonlítható össze a többi, Windowst használó pályázó munkájával. Sajnos jelenleg nincs kapacitás, erőforrás, mód arra, hogy más kategóriát is indítsunk, ahol pl. Macintosh vagy Linux lenne az alap. Ha legközelebb versenyt indítunk, biztosan megfontoljuk a több kategóriás versenyzés lehetőségét. Az ötletet köszönjük. Tehát jelenleg csak Windows alapon tudunk érvényes pályamunkát fogadni!

Q: Lehet-e használni a tesztrendszert közvetlenül internetről?
A: A tesztrendszer egy internettől elválasztott önálló szigetet alkot, így azt nem lehet kívülről elérni. Az elkészült pályamunkákat tesztelni a honlapon keresztül lehet. A feltöltött pályamunkákat a tesztrendszeren ellenőrizzük és az eredményt közzétesszük, így mindenki tudja ellenőrizni a munkája eredményét. A pályamunka teljesítményét legalább 100 kitöltött teljes kocka után az "Értékelő" program automatikusan feltölti, ezen túlmenően mindenki a saját gépének a fogyasztását nyomon tudja követni egy háztartási fogyasztásmérővel.

Q: Hogyan tudom a multicast kommunikációt könnyen és gyorsan megvalósítani?
A: A hálózati kommunkáció megvalósítására Windows rendszerben a winsock használható. A winsock tulajdonságok között be kell állítani az UDP kommunikációs protokollt, a szerver címét és a port azonosítóját, valamint a szükséges opciókat. A winsock használatával kapcsolatban bővebb leírásokat az MSDN-en vagy programozói portálokon lehet találni.

Q: Hogyan tudom az eredményeket elküldeni a TCP kapcsolat segítségével?
A: Az összeköttetésorientált (TCP) hálózati kommunkáció megvalósítására Windows rendszerben a winsock használható. Be kell állítani a winsock tulajdonságok között a protokollt, a szerver címét és a szolgáltatás portazonosítóját. Mivel összeköttetésorientált protokollról van szó, a beállítás után meg kell nyitni a kommunikációt. A winsock használatával kapcsolatban bővebb leírásokat az MSDN-en vagy programozói portálokon lehet találni.

Q: Fel kell használni az összes, a szabályzatban felsorolt programot a versenyfeladat megoldása során?
A: Nem.

Itt töltheted le a feladat megoldásához szükséges generáló- és gyűjtőszerver, valamint a példaprogram telepítőjét.

Generátor (.rar, 2,3 MB)
Versenyprogram demo (.rar, 2,3 MB)
Gyűjtőszerver (.rar, 2,3 MB)

Dokumentáció a fenti 3 programhoz (.pdf, 383 KB)

 

Kérdések és válaszok

Q: Lehet-e használni a tesztrendszert internetről közvetlenül?

Q: Hogyan tudom a multicast kommunikációt könnyen és gyorsan megvalósítani?

Q: Hogyan tudom az eredményeket elküldeni a TCP kapcsolat segítségével?

Q: Fel kell használni az összes, a szabályzatban felsorolt programot a versenyfeladat megoldása során?

PPKE Információs Technológiai Kar
H-1083 Budapest, Práter utca 50/a.
Az ITK a Google Maps-en
Tel: (36-1) 886-4700
E-mail: progverseny@itk.ppke.hu

Szponzoraink:

PCWorld     web4     GameStar     Morgan Stanley     IVSZ     NJSZT     IBControll     ITCafé      Nemzeti Fejlesztési Minisztérium