Uzdevums #306
Autors:IOAI Committee
Grūtības pakāpe
Jūsu labākais rezultāts
Nav pieejams
Septiņpadsmitajā gadsimtā John Wilkins mēģināja izveidot perfektu valodu: lietas nosaukumam vajadzēja atklāt tās vietu klasifikācijā, kas veidota no YES/NO atšķirībām.
Projekts tika pamests, taču kāds nezināms ierēdnis turpināja vākt dzīvniekus milzīgajā Atšķirību kabinetā. Katrā atvilktnē ir paslēpta radība. Etiķetes ir pazudušas, un misiņa režģis uz katras atvilktnes reaģē tikai uz bināriem jautājumiem par tajā esošo animal.
No arhīva ir saglabājušies šādi ieraksti:
animals_pool.txt — 250 dzīvnieki, kas var atrasties kabinetā;questions_pool.csv — 280 atļautie jautājumi;oracle_table.csv — fiksētās orākula responses katram (animal, question) pārim.Jums jāizveido adaptīva politika, kas identificē animal, izmantojot pēc iespējas mazāk izsaukumu.
Interaktīvajā versijā programma secīgi izsauktu:
interactor.ask(question) # -> "yes" / "no"interactor.guess(animal) # -> "correct" / "wrong"Tomēr pašreizējā versijā platforma nedarbina reāllaika interaktoru. Tādēļ Jums jāiesniedz lēmumu koks, ko izpildītu Jūsu programma. Vērtētājs sāk mezglā 0, izmanto privāto orākulu un pēc katras answer dodas pa atbilstošo zaru.
Koks faktiski var būt orientēts grafs: vairāki zari var novest uz vienu un to pašu mezglu. Cikli nav lietderīgi, jo katrs mezgla apmeklējums patērē vienu izsaukumu, un budžets ir stingrs.
animals_pool.txtKatrā rindā ir viens animal nosaukums. Minējumos drīkst izmantot tikai šos nosaukumus.
questions_pool.csv| Kolonna | Nozīme |
|---|---|
question_id | identifikators formā Q0001 |
question | question teksts |
kind | semantic vai lexical |
Semantiskie jautājumi apraksta bioloģiskas vai ekoloģiskas īpašības. Leksiskie jautājumi apraksta katalogā saglabāto nosaukumu angļu valodā. Atšķirību kabinetā der abu veidu jautājumi.
oracle_table.csv| Kolonna | Nozīme |
|---|---|
animal | animal kandidāts |
responses | bināra virkne atbilstoši questions_pool.csv norādītajai secībai |
Rakstzīme pozīcijā i ir orākula answer uz question rindā i:
1 = yes;0 = no.Orākuls ir deterministisks un fiksēts. Tabula atspoguļo tā uzskatus, nevis perfektu zooloģisko zināšanu bāzi, tādēļ dažas atbildes var būt apstrīdamas. Risinājumam politika jāoptimizē atbilstoši tabulā glabātajām faktiskajām responses.
Augšupielādējiet arhīvu ar šādu struktūru:
submission.zip└── submission.csvsubmission.csv jāatrodas arhīva saknē. Arhīvā nedrīkst būt neviena cita faila.
CSV failā jābūt tieši šādām kolonnām:
id,subtaskID,answerid — unikāls mezgla skaitlisks identifikators;subtaskID — vienmēr 1;answer — mezgla apraksts.Saknes mezglam jābūt id = 0.
Neaugšupielādējiet
submission.csvtieši. Platformai jāsaņem arhīvssubmission.zip.
Q|question_id|yes_node|no_nodePiemērs:
0,1,Q|Q0001|1|2Ja answer uz Q0001 ir yes, vērtētājs turpina darbu mezglā 1; pretējā gadījumā tas turpina darbu mezglā 2.
G|animal|wrong_nodePiemērs:
1,1,G|agouti|3Vērtētājs jautā: “Vai animal ir agouti?” Ja guess ir correct, gadījums beidzas. Ja guess ir wrong, vērtēšana turpinās mezglā 3.
Īpašā vērtība END nozīmē, ka politika padodas:
2,1,G|alligator gar|ENDTā kā laukā
answerir rakstzīme|, īpaša CSV ekranēšana no nepieciešama. Dzīvnieku nosaukumos nav|.
Katram paslēptajam animal ir atļauti ne vairāk kā 15 izsaukumi.
Katrs apmeklētais mezgls patērē tieši vienu izsaukumu:
Q mezgls patērē vienu izsaukumu;G mezgls patērē vienu izsaukumu neatkarīgi no tā, vai guess ir correct vai wrong.Pēc 15th izsaukuma gadījums automātiski beidzas.
Katram animal:
score_case = max(0, (1 if guessed correctly, otherwise 0) - 0.02 × calls_used)Piemēri:
0.98;0.90;0.70;0.Galīgais rezultāts ir:
100 × mean(score_case)Teorētiski maksimālais rezultāts ir 98, jo pat tūlītējs correct guess patērē vienu izsaukumu.
20,000 mezglu;0 ir jāpastāv;question_id jāpastāv failā questions_pool.csv;animals_pool.txt;submission.csv.Faila submission.csv saturs:
id,subtaskID,answer0,1,Q|Q0001|1|21,1,G|agouti|END2,1,G|alligator gar|ENDŠī politika uzdod vienu question un pēc tam izdara vienu guess. Tā atrisinās tikai tos gadījumus, kuros abas lapas atbilst paslēptajam animal.
log2(250) ≈ 7.97. Ideālā kokā ar aptuveni astoņām binārām atbildēm pietiktu, lai nošķirtu 250 dzīvniekus, taču pieejamie jautājumi ne vienmēr sadala kandidātu kopu precīzi uz pusēm.
Noderīga stratēģija ir:
yes un no zarus;Šis uzdevums ir IOAI 2026 repozitorijā publicētās piezīmju grāmatas 3. mājasdarbs — John Wilkins analītiskā valoda ONIA adaptācija. Uz LLM balstītais interaktors tika aizstāts ar fiksētu orākulu, lai vērtēšana būtu ātra un deterministiska.