Stránka 1 z 2

Zmena v odovzdávaní úloh

PoslaťNapísal: Sob Mar 27, 2010 10:26 pm
od FeroG
Počnúc 5. prednáškou nastala zmena charakteru riešených úloh. Vďaka tomu a vďaka ochote Sama Kupku je možné nasadiť na odovzdávanie úloh systém palma.strom.sk. Zmena charakteru znamená, že dôraz nebude kladený na vytvárané objekty, ale na algoritmus - na to, ako sa vstup transformuje na správny výstup. Systém palma.strom.sk bol vyvinutý pre potreby programátorskej súťaže Palma - t.j. nie je prioritne vytvorený pre odovzdávanie riešení domácich zadaní. Pre nás na Palme bola vytvorená súťaž PAZ1b. To, že sa používa len 1 súťaž má isté obmedzenia. Napr. nejde automaticky blokovať posielanie úloh po deadline (ale bude sa to kontrolovať manuálne).

Najneskôr na najbližšom praktickom cvičení bude vašou úlohou vyriešiť testovaciu úlohu, aby ste sa so systémom Palma zoznámili. Inštruktáž k použitiu nájdete tu: http://web.ics.upjs.sk/paz/PAZ1bZadania/PAZ1bPalma

PoslaťNapísal: Sob Mar 27, 2010 11:13 pm
od Aries
Ako to bude s vyhodnocovanim a ziskavanim bodov? Ostane to ako doteraz, alebo sa to zmeni na funguje - plny pocet, nefunguje - nula? Ak by program nefungoval pre jeden specificky pripad (napriklad v poslednej ulohe mnohi zabudli na pripad, ked je spajany zoznam prazdny a prvy uzol je null), ako sa to vyhodnoti?

PoslaťNapísal: Sob Mar 27, 2010 11:24 pm
od FeroG
Hodnotenie ulohy bude v rezime 0 alebo plny pocet. Je mi jasne, ze je to ovela prisnejsi sposob hodnotenia - aj to je dovod, ze sa ani len neuvazovalo nasadit ho skor (skor to zaroven bolo technicky nemozne). Pri uvode ucenia sa programovania je asi komentar cloveka dost dolezity. Kedze system vyhodnocuje riesenia okamzite, po odoslani zleho riesenia bude odosielatel upovedomeny, ze v rieseni je chyba. Ma tak cas a priestor na opravenie riesenia (pocet odoslani nie je obmedzeny).

Chcem vas tiez uistit, ze z nasej strany nejde o ulahcenie si prace (vytvorenie vhodnych testovacich vstupov je casovo narocnejsie nez skontrolovanie rieseni) :-)

PoslaťNapísal: Sob Mar 27, 2010 11:26 pm
od Aries
Aha, tak pokial ma system upozorni a ja mozem poslat opravne riesenie, nemam ziadne vyhrady :) Vlastne je to este ulahcenie, s trochou snahy bude mozne zakazdym ziskat plny pocet bodov a nestratim nic na drobnostiach, ktore by mi inak unikli.

PoslaťNapísal: Ned Mar 28, 2010 3:17 am
od bwpow
FeroG píše:(pocet odoslani nie je obmedzeny)

Musim poopravit tuto informaciu. Pocet odovzdani je obmedzeny na 99 pokusov. Dovodom je hlavne to, aby studenti neurobili proste program, ktory vracia nejake nahodne cisla a potom ho robotom posielali vkuse dovtedy, kym by vysledok nesedel. Taktiez je to ochrana systemu proti zahlteniu. Ale myslim si, ze 99 pokusov na kazdy jeden priklad je viac ako dost.

PoslaťNapísal: Ned Mar 28, 2010 8:08 am
od gursky
bwpow píše:
FeroG píše:(pocet odoslani nie je obmedzeny)

Musim poopravit tuto informaciu. Pocet odovzdani je obmedzeny na 99 pokusov. Dovodom je hlavne to, aby studenti neurobili proste program, ktory vracia nejake nahodne cisla a potom ho robotom posielali vkuse dovtedy, kym by vysledok nesedel. Taktiez je to ochrana systemu proti zahlteniu. Ale myslim si, ze 99 pokusov na kazdy jeden priklad je viac ako dost.


Myslim, ze nakodenie tohto robota by bolo hodne tych bodov, aj ked clovek vyriesi inu ulohu :). Okrem toho predpokladam, ze sa zaznamenava pocet submitov, co by vlastne nijako nepomohlo, lebo taketo pokusy by boli lahko odhalitelne. Naviac, krajsie riesenie by bolo po odoslani viac ako 5 alebo aj menej rieseni za minutu by sa bloklo heslo. Kedze taky random generator potrebuje na najdenie riesenia hadam aj miliardu pokusov tak by sme sa pri rychlosti < ako 5 za minutu nedockali. Dalej predpokladam ze je viac testovacich vstupov, tym padom sa pravdepodobnost nahodneho najdenia riesenia pre vsetky vstupy blizi velmi rychlo k nule

PoslaťNapísal: Ned Mar 28, 2010 4:08 pm
od johny
gursky píše:Myslim, ze nakodenie tohto robota by bolo hodne tych bodov, aj ked clovek vyriesi inu ulohu :). Okrem toho predpokladam, ze sa zaznamenava pocet submitov, co by vlastne nijako nepomohlo, lebo taketo pokusy by boli lahko odhalitelne. Naviac, krajsie riesenie by bolo po odoslani viac ako 5 alebo aj menej rieseni za minutu by sa bloklo heslo. Kedze taky random generator potrebuje na najdenie riesenia hadam aj miliardu pokusov tak by sme sa pri rychlosti < ako 5 za minutu nedockali. Dalej predpokladam ze je viac testovacich vstupov, tym padom sa pravdepodobnost nahodneho najdenia riesenia pre vsetky vstupy blizi velmi rychlo k nule


Samov príklad bol trochu prehnaný, ale je viac dobrých dôvodov, prečo obmedzovať počet submitov (počas súťaže je to dokonca 15, nie 99, navyše sa zlé submity penalizujú časovo).

Je to motivácia pre súťažiacich, aby sa radšej viac zamysleli, prípadne si aj skúsili dokázať, že ich riešenie naozaj funguje, ako keby mali posielať všetky varianty, čo ich napadnú ("má tu byť +1 alebo nie? nechce sa mi overovať, skúsim submitnúť"). Taktiež je to motivácia proti debugovaniu štýlom "nezbehol mi program, skúsim zmeniť jeden riadok, submitnem znovu".

Okrem toho, každým submitom sa dá vycucať od testovača niekoľko bitov informácií o "tajných" vstupoch - stačí napísať program tak, aby v závislosti od vstupu prinútil testovač vrátiť niektorý z možných výstupov (wrong answer, runtime error, illegal system call, timelimit sa všetky dajú spoľahlivo vynútiť, takže vieme získať minimálne 2 bity informácie za submit).

Viď tiež MišoFov paper.

PoslaťNapísal: Str Mar 31, 2010 8:55 am
od PainMaster
STAV: Zlá odpoveď
ale
Záznam kompilácie, čas 31.03.2010 08:44:42

Kompilácia prebehla v poriadku.


Kedze som s tym este nikdy neprcoval a niesom sam, nemoze niekto , kto s tym uz skusenosti ma, postat screen ,alebo nieco ako to ma byt?:P

/jedna sa len o testovu ulohu , ktoru som skopiroval z Paz stranky/

PoslaťNapísal: Str Mar 31, 2010 9:04 am
od PainMaster
eee..asi to nieje uplny kod co?:D...

PoslaťNapísal: Str Mar 31, 2010 9:12 am
od PainMaster
Obrázok

PoslaťNapísal: Str Mar 31, 2010 11:47 am
od FeroG
PainMaster píše:eee..asi to nieje uplny kod co?:D...


Ano, to co je na stranke PAZ, chce byt len ukazkou nacitania vstupu a vypisania vystupu. Predpokladalo sa, ze dopisat kod na najdenie maxima a minima sa zvlada.

Najdolezitejsie stavy su tieto:
Chyba kompilacie - zlyhala kompilacia, najcastejsia chyba je to, ze sa nenakopiroval cely zdrojovy subor alebo odoslana trieda sa nevola source.
Zla odpoved - kompilacia prebehla OK, spustilo sa testovanie, ale program nefunguje, t.j. dava zle odpovede. Najcastejsia chyba je logicka chyba v programe.
Prijate - najviac potesujuca sprava, kedze system Palma usudil, ze zaslany program je spravny,

PoslaťNapísal: Pia Apr 02, 2010 12:27 am
od Aries
Co znamena "Vyprsal casovy limit"? Pise mi to pri ulohe o chemickom sklade, po prvom neuspesnom odoslani som si myslel, ze algoritmus nie je efektivny... Ale skusil som ho aj pri 50 roznych latkach a maximalnom pocte dvojic, a zbehne asi za desatinu sekundy, alebo aj menej. Mozno je to mojim rychlejsim procesorom (Intel Core 2 Duo @ 3.5GHz), ale to by musel byt asi Commodore 64, aby to spravil az o tolko pomalsie. Program sa mi zda byt spravny (ak by nebol, asi to da inu hlasku), tak kde je chyba? Rad by som ju nasiel, ale netusim co vlastne hladat...

PoslaťNapísal: Pia Apr 02, 2010 12:55 am
od bwpow
Aries píše:Co znamena "Vyprsal casovy limit"? Pise mi to pri ulohe o chemickom sklade, po prvom neuspesnom odoslani som si myslel, ze algoritmus nie je efektivny... Ale skusil som ho aj pri 50 roznych latkach a maximalnom pocte dvojic, a zbehne asi za desatinu sekundy, alebo aj menej. Mozno je to mojim rychlejsim procesorom (Intel Core 2 Duo @ 3.5GHz), ale to by musel byt asi Commodore 64, aby to spravil az o tolko pomalsie. Program sa mi zda byt spravny (ak by nebol, asi to da inu hlasku), tak kde je chyba? Rad by som ju nasiel, ale netusim co vlastne hladat...

Skus si to pustit pre viac dvojich, napriklad 40, a uvidis :)

PoslaťNapísal: Pia Apr 02, 2010 12:59 am
od Aries
Skusal som to teraz pre 150 latok a 11175 moznych dvojic (vsetky co sa daju, teda dvojica x y je tam aj ako y x, ale to mojmu algoritmu nevadi), a zobrazilo to vysledok takmer hned po stlaceni "run". Chcel som skusit aj viac, ale to uz mi konzola neberie :) Tak neviem v com je vlastne problem, mozno celkom nechapem ten system odovzdavania, ale efektivnejsie to uz asi napisat nedokazem... V O(1) to zrejme nepojde :D
Alebo mi tu unika nieco fakt podstatne, ale netusim co.

PoslaťNapísal: Pia Apr 02, 2010 1:13 am
od bwpow
Aries píše:Skusal som to teraz pre 150 latok a 11175 moznych dvojic (vsetky co sa daju, teda dvojica x y je tam aj ako y x, ale to mojmu algoritmu nevadi), a zobrazilo to vysledok takmer hned po stlaceni "run". Chcel som skusit aj viac, ale to uz mi konzola neberie :) Tak neviem v com je vlastne problem, mozno celkom nechapem ten system odovzdavania, ale efektivnejsie to uz asi napisat nedokazem... V O(1) to zrejme nepojde :D
Alebo mi tu unika nieco fakt podstatne, ale netusim co.

No, ja som len tak zo srandy natukal takyto vstup (nenachadza sa v testovacich):
  Kód:
10 10
0 1
1 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
3 9

a nie a nie skoncit.