Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Nudou jsi opuch?
Navštiv Lopuch!

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Archiv klubu Turnaj piškvorkových UI [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.

Vítejte na diskuzním fóru turnaje piškvorkových brainů Gomocup. Každý může naprogramovat vlastní umělou inteligenci a zůčastnit se turnaje, který je každý rok na jaře. Tady se můžeme domlouvat, diskutovat o pravidlech a vyměňovat si zkušenosti.

8. turnaj se konal v sobotu 27.4.2007 na Universite v Plzni. Zvítězil program Tito a autor Andrej Tokarjev tak získal cenu 50 euro.

WWW stránky turnaje (http://gomocup.wz.cz)

Link na archiv starších příspěvků

HTML specifikace nového protokolu

Kubin - Řízení turnaje
Pela - Vývoj protokolu, kostry a manažeru
OTK - Webmaster

  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
   
[ 215 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
fontan 28.11.2005 15:20  337
:-) Dokonce bych řekl, že na nanosekundy
pela 27.11.2005 16:52  336
Nová verze manažeru měří čas s přesností na 1 ms pomocí funkce QueryPerformanceCounter. Předchozí verze používaly funkci GetTickCount, která správně funguje jen ve Win98, zatímco ve WinNT/2000/XP je nepřesná.
bilbo 11.11.2005 16:43  335
jinak s nevytvarenim dalsich procesu taky souhlas, tim by sel obejit pak i ten hlidany limit na pamet ...
bilbo 11.11.2005 16:42  334
No, ve faru mam takovy plugin zvany process list, ktery mimo jine pres windows API zjistuje i kolik ktery proces sezral od sveho spusteni na procesoru - pocita se jen kdy aktivne bezi. Ve chvili kdy by mezi predanim tahu a dostanim tahu byl rozdil mezi spotrebovanym casem vetsi nez nejake male epsilon (treba 50 milisekund), znamenalo by to ze brain premysli na pozadi a diskvalifikaci.

Takze by stacilo tyhle udaje z windows ziskat ...

Nebylo by tak nutny suspendovat thready (coz treba muze zas zpomalovat jine brainy, nekterym muze vadit treba suspendovani threadu v "blbem poradi") - kdo pocita na pozadi, toho odhalime :o)
Aneb hlidejte si to sami, brainove :o)

Priklad:
Started at: 14:58:59
Uptime: 00:36:50
Processor Time: 00:00:01.015 0%
Privileged Time: 00:00:01.010 0%
User Time: 00:00:00.005 0%

Aneb treba tenhle proces (icq) bezi uz pul hodiny, ale sezral jen vterinu casu na procesoru - coz odpovida tomu, ze je vicemene furt idle ....
otk 11.11.2005 12:49  333
souhlass tim bych souhlasil
pela 10.11.2005 23:27  332
Manažer pozastavuje všechny thready toho brainu, který právě není na řadě (aby nekradl čas druhému brainu). Ve starší verzi manažeru to fungovalo i na procesy, ale bohužel jsem to musel změnit, protože to zpomalovalo brainy, které byly naprogramovány v Delphi. Přemýšlel jsem o tom, jestli by se nedalo hlídání procesů naprogramovat nějak jinak, ale napadlo mě pouze pravidelné zjišťování všech běžících procesů, což by bylo časově náročné.
Nejlepší by proto bylo do pravidel turnaje napsat, že brain si nesmí vytvářet více procesů. Zatím všechny současné brainy používají jen jeden proces, takže by to neznamenalo žádné omezení.
otk 6.11.2005 13:17  331
Kubin:Diky, za info, uz jsem si ji procistil.
anonym 6.11.2005 13:15  330
MadariAhoj, asi uz to vesmes vite, ale Madari naplanovali druhy turnaj na 3.12.2005, zucastnit se muze kazdy a pouzivaji oba nase protokoly. Zalozili webovy stranky http://gomoku.uw.hu, kde si muzete precist novinky a pozvanku na ten turnaj.
bilbo 6.11.2005 02:48  329
Lada: no, programove to myslim neni hlidano (sice lze ve windows suspendovat a pak znovu pustit jeho thready, ale je to trochu nasilny postup a pokud si brain na tohle udela ne novy thread ale novy proces, tak se to neohlida vubec (nebo jen velice blbe)), ale jinak by tohle bylo asi reseno diskvalifikaci ....
anonym 4.11.2005 23:57  328
LadaJak je vyreseno "kradeni" strojoveho casu ? POkud si udelam multithreaded brain s high priority, tak 2. brain si ani neskrtne.
kubin 2.11.2005 09:11  327
Vojto, mas plnou emailovou schranku, vraci se mi emaily!
bilbo 27.10.2005 17:09  326
PELA: no sel by udelat prikaz FEATURES na ktery by brain odpovedel seznamem features co umi.
ABOUT - klidne bych zavedl specifikaci nejakeho formatu, ve kterem je doporuceno vracet udaje ... aby je manager nejak pak automaticky rozparsoval.
Ale princip "manager se pta, brain jen odpovida" bych nechal.
as 2) na prikaz info_timeout poslany ve chvili kdyz to brain neceka brain proste nebude reagovat - podle soucasne kostry by brain v klidu dohral, poslal svuj tah, pak by cekal souperuv tah - dostal by nejdriv info_timeout 0 (ten si ulozi) a po chvili souperuv tah. V tu chvili vi ze ma 0 vterin na tah, takze hned vyplivne nejaky uplne blby tah, co ho hned napadne.... coz casto muze znamenat (skoro) okamzitou prohru ...

Takze ... spis bych zavedl nejaky specialni prerusovaci prikaz, ktery by se posilal jen tem brainum, ktery uvedou, ze maj prerusovani ve features. U tehc je pak jasny ze na to budou reagovat, a ne takhle nesystemove umele menit nastaveni ....
anonym 26.10.2005 15:20  325
Maďarská otevřeníChcete-li si zkusit "balanced openings" pro 2nd Hungarian Computer Go-Moku Open Tournament 2005 pod pelatúrem, stahněte si soubor http://web.quick.cz/Jara_Babak/piky/openingsHun.zip
pela 26.10.2005 00:33  324
Přečetl jsem si specifikaci UCI protokolu a několik věcí se mi na ní líbilo. Například, že AI musí vždy reagovat na příkazy od manažeru a to i když přemýšlí. V našem protokolu je to nepovinné a kromě pbrain-pela to snad nikdo jiný neumí. I když je UCI protokol docela dobrý, do manažeru ho přidávat nebudu. Jen pokud by se našlo více lidí, kteří by ho chtěli používat, pak bych se tím začal zabývat.

Přemýšlel jsem, co by se dalo zlepšit na našem protokolu, aniž by se musel celý zahodit, a napadlo mě několik věcí:
1) Odpověď na příkaz ABOUT by měla být v takovém tvaru, aby jí porozuměl nejen člověk, ale také manažer. Například u mého AI je to takto:
author="Petr Lastovicka", version="7.3", country="Czech Republic", www="http://
web.quick.cz/lastp"
2) Na příkaz INFO timeout_turn 0 by AI mělo reagovat tak, že okamžitě přestane přemýšlet a na výstup napíše zatím nejlepší nalezený tah. V poslední verzi manažeru se tento příkaz posílá při stisku mezerníku. Uživatel si proto může nastavit hodně velký čas na tah a pak kdykoli ručně přerušit přemýšlení AI. Před dalším tahem manažer pošle INFO timeout_turn s původní hodnotou času na tah.
3) Největším problémem našeho protokolu je, že na INFO příkaz není žádná odpověď. Uživatel žádným způsobem nemůže zjistit, na které INFO příkazy AI reaguje a které jednoduše ignoruje. Teď už se asi těžko dá protokol změnit, aniž by se tím narušila kompatibilita. Samozřejmě by bylo možné přidat do protokolu další příkazy, ale raději bych to řešil nějak jinak. Například by AI mohlo hned po spuštění poslat MESSAGE příkazy (u starého protokolu je na to soubor msg.dat), kde by se vypsalo vše, co AI umí nebo neumí. Především jde o časové limity. Ostatní vlastnosti si uživatel může zjistit sám (kolik AI potřebuje paměti, jaké rozměry může mít hrací plocha). Dalším z možných řešení je přidat ke každému AI krátký textový soubor, kde budou veškeré informace o AI. Také by bylo dobré umístit na webové stránky tabulku, která by měla sloupce čas na tah, čas na partii a paměť.
genarito 6.10.2005 08:20  323
UCI protokolhttp://www.aarontay.per.sg/Winboard/uciapril.html

Opravdu stojí za to ho prostudovat. Je tam vlastně všechno vyřešené a dá se to použít pro jakoukoliv hru. Mě osobně se nejvíc líbí vyřešené přemýšlení na čas soupeře... Malinko jsem ho rozšířil o možnost zaslání více očekávaných tahů... Fungovalo by to samozřejmě i pro piškvorky, kde je hodně vynucených tahů. Motor tak nemusí čekat jen na jediný správný tah soupeře, ale nechá soupeře hrát sérii vynucených tahů... Myslím, že nakládání s časem při soupeřově přemýšlení může být dost zajímavý nehledě na to, že to turnaje urychlí :o) Protokolem jsem se prokousával a funguje mi u hry dáma, takže pokud byste měli nějaký dotazy jak co vyřešit, tak dejte klidně vědět. Jo jinak chápu, že už máte něco naprogramovaný, ale tohle je skvěle navrhnutý protokol. Četl jsem ten váš... Myslím, že bude náchylný na neustálé doplňování nových příkazů až se v tom možná kluci ztratíte. Pak ani to programování nebude tak příjemný jak pro tvůrce GUI, tak pro autory motorů. Kdo chce vidět jak protokol kmitá, tak si může stáhnout free šachy a zahrát si proti nějakému UCI motoru.

http://www.playwitharena.com/

Miloš

[ 215 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt