Jakie byłoby elo programu komputerowego, który gra losowo?


11

Jaki byłby Elo programu komputerowego, który odtwarza losowe ruchy?

Dla uproszczenia załóż, że nigdy nie prosi o remis lub rezygnuje i nigdy nie przyjmuje oferty losowania.


Wyobraź sobie wszystkie elementy na planszy, a zaatakujesz królową komputera. Ma szansę 1 na 16, by poruszyć królową, a może niewielką szansę na obronę innym pionkiem.
ZL1Corvette

4
Trudno mi wyobrazić sobie człowieka grającego gorzej niż przypadkowo.
Dag Oskar Madsen

Wolę to robić naukowo
MikhailTal

Dla mojej klasy AI mieliśmy stworzyć AI szachowe. Pierwszą fazą zadania były losowe ruchy. Kiedy te AI walczyły, przeważnie kończyło się remisem. Chciwa sztuczna inteligencja, która atakuje najcenniejszy element, jeśli ma zastosowanie, w innym przypadku losowo pokonuje losową sztuczną inteligencję za każdym razem.
Harrichael

Odpowiedzi:


13

Na dole listy ocen szachów komputerowych dla kontroli czasu 40/4 znajduje się Brutus RND, silnik, który po prostu wybiera losowe legalne ruchy.

http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Brutus%20RND#Brutus_RND

Ma ocenę 205 (od 6 czerwca 2018). Oczywiście nie jest to ocena FIDE, ale korzysta ona z systemu Elo.

Ma 0 wygranych, 242 przegranych i 64 remisy. Losowania są spowodowane wadliwymi programami, które przypadkowo powodują losowanie przez powtórzenie lub czasami pat, ale na ogół mają znaczną przewagę materialną, gdy to nastąpi.

FIDE ma dolną granicę ratingową wynoszącą 1000. Brutus RND po prostu nie ustaliłby tak wysokiej oceny i nie zostałby oceniony.

Jeśli zignorujemy dolną ocenę FIDE, możliwe jest uzyskanie negatywnej oceny w systemie Elo.

Należy wspomnieć, że FIDE używa tabeli do obliczania zmian w ocenach, a jeśli różnica w ocenach jest większa niż 735, to nie nastąpi żadna zmiana po wygraniu silniejszego gracza. Oznacza to, że Brutus nigdy nie miałby oceny -5000 ani nic podobnego, ponieważ musiałby tracić punkty spektakularnie niekompetentnym graczom, którzy nie byliby w stanie zapewnić matowi.

https://www.fide.com/component/handbook/?view=article&id=197

Zgadujemy. Gracze oceniani na 1000 Elo byliby w stanie obniżyć ocenę Brutusa do 265, ale ponieważ nie ma graczy z gorszymi ocenami, nie możemy dokładnie powiedzieć, o ile dalej mogliby obniżyć ocenę Brutusa, gdyby istnieli.

Sądzę, że gracze, którzy mają 500 Elo lub gorzej, mieliby problemy z konsekwentnym dostarczaniem partnera, podobnie jak wadliwe programy. Remisy 3-krotnym powtórzeniem lub reguła 50 ruchów nie są automatyczne zgodnie z regułami FIDE i miałyby miejsce tylko, gdyby Brutus je przejął. Ale człowiek może stracić, tracąc czas, a także losowo.

Więc zgaduję gdzieś w zakresie od -200 do 200, jeśli FIDE dopuszcza oceny poniżej 1000 i pozwala Brutusowi konkurować.


Brzmi wysoko. Domyśliłbym się bliżej 100, gdyby ruchy były naprawdę losowe.
edwina oliver

6

Problem z losową grą polega na tym, że na przeciętnej pozycji w szachach jest wiele ruchów (od 20 w otwarciu do łatwo 50 lub więcej w skomplikowanych grach końcowych), ale tylko kilka z nich jest do zaakceptowania. Losowe ruchy spowodują całkowitą dezorganizację od samego początku gry. Co więcej, chwytanie mniej wartościowych elementów byłoby bardzo powszechne, szczególnie w środkowej części gry. To powiedziawszy, nawet wobec wyjątkowo słabej opozycji, komputer na dłuższą metę popełni błąd: tony materiału zostaną sprzedane i być może nie będzie wiele dobrego dla komputera, komputer będzie niewątpliwie nierozwinięty, jego król nie będzie bezpieczny i być może nawet nie zamki ...

Tyle złych rzeczy, które narastają i niezwykle szybko, spowoduje pewną porażkę dla maszyny. Jego Elo będzie prawdopodobnie 0 FIDE.


2
Trudno byłoby nawet przegrać z takim silnikiem! Nawet jeśli CHCESZ zostać zmatowiony, może minąć wieczność, dopóki silnik go nie zarządza. Jedynym realistycznym sposobem na wygraną losowego silnika jest rezygnacja przeciwnika.
Peter

Jeśli choć trochę wiesz o grze, całkowicie się zgadzam. Ale jeśli po prostu wiesz, jak przenosić pionki, nawet ich wartość, czy jakaś strategia ... Cóż, to człowiek i komputer grają w mniej więcej równy sposób.
Pablo S. Ocal

Myślę, że nawet nowicjusz, który właśnie nauczył się dzisiaj reguł, grałby lepiej niż przypadek. Nowicjusz może użyć heurystyki, takiej jak „schwytajmy kawałki”, która działa świetnie przeciwko przypadkowemu silnikowi, ponieważ możesz uchwycić dowolny kawałek, nawet jeśli jest on chroniony, lub po prostu zostawić wiszące kawałki, a silnik jest bardzo mało prawdopodobne, aby uchwycić ponieważ ma tak wiele innych bezużytecznych ruchów do wyboru. Ostatecznie jedyną możliwą trudnością dla nowicjusza jest wymyślenie sposobu krycia, ale nie powinno to być zbyt trudne, biorąc pod uwagę prawdopodobną przewagę materialną.
itub

Nie, nie jest trudno przegrać z przypadkowym graczem, jeśli chcesz przegrać. Możesz spróbować z aplikacją Play Magnus na 5-latkę. Musisz tylko wymusić sytuację, w której jedynym legalnym ruchem, jaki może wykonać, jest dostarczenie mat. Najłatwiejszym sposobem na to jest złapanie wszystkich pionków z wyjątkiem 1 pionka, złap w pułapkę króla, aby mógł tylko awansować pionka, zostawić króla na pierwszym stopniu i ustawić inne elementy, aby zablokować króla przed ucieczką, gdy pionek awansuje i wzywa czek. Działa to, jeśli awansuje na królową lub wieżę, więc masz 50% szansy na przegraną (lub 100%, jeśli nigdy nie awansuje).
Silas S. Brown

5

Naprawdę losowa gra jest znacznie gorsza, niż mogłoby się wydawać. Pułap absolutny USCF wynosi 100, a ten program nigdy nie przekroczyłby tego poziomu.


1

Nie jestem pewien, w jaki sposób Go oceny porównać do szachów, ale losowej wynosi około -3500 tam . Ponieważ współczynnik rozgałęzień dla szachów jest niższy, spodziewam się, że elo przypadkowego gracza będzie wyższe, może gdzieś pomiędzy -2000 a -500.


1
Jak zauważono w odpowiedzi na stronie chess.stackexchange.com/a/6509/9025 , dolna granica ratingu USCF wynosi 100, więc ocena negatywna byłaby niemożliwa.
Herb Wolfe

Po prostu inne spojrzenie na to pytanie. Nie określono, który system oceniania należy zastosować, a statystyki elo nie mają „dolnej granicy”.
Akababa

1

Gorzej niż początkującego który ledwo zna reguły gry, bo przynajmniej początkujący stawia jakąś myśl w wyborze ruch. Ich ruchy mogą być w większości przypadkowe, ale przynajmniej trwa ocena pozycji.

Tak więc ocena tego silnika byłaby na najniższym możliwym poziomie dowolnego systemu oceny, który wybierzesz. Może w końcu wygrać lub zremisować grę z równie złym przeciwnikiem, a następnie zwiększyć o kilka punktów. Można jednak oczekiwać, że moc silnika szybko spadnie z powrotem do minimalnej podłogi.

W „Programowaniu komputera do gry w szachy” Shannona zauważa, że ​​prawdopodobieństwo losowej gry pokonanej Botvinnika jest rzędu 10 ^ -75. Tak więc, jeśli ten przypadkowy komputer miałby bez przerwy grać w Botvinnik (lub nawet zwykłego mistrza) przez całe życie, możemy zasadnie oczekiwać, że nigdy nie wygra.

Jednak Shannon mówi dalej, że losowa gra nie jest najgorszą strategią; najgorszą strategią jest celowe wykonywanie ruchów, które pomagają przeciwnikowi. Chociaż możliwe jest, że początkujący może to zrobić, są szanse, że spróbują wykonać ruchy, które poprawią ich pozycję.


0

Bardzo dobrą odpowiedzią byłoby to zrobić:

Użyj numpy, bardzo słabego silnika gry, około 1500 ELO i dołącz do niego skrypt Pythona. Istnieje wiele bibliotek, które zapewniają możliwe ruchy w danej pozycji, więc możemy wybrać jedną losowo. Wyniki opublikuję później.

http://creative-co.de/random_chess/

Powinieneś to również sprawdzić.


3
Numpy to naukowa biblioteka matematyczna, a nie silnik szachowy.
svineet

Jest to także silnik szachowy
MikhailTal

2
chess.stackexchange.com/questions/6034/… Wygląda na to, że nazywa się numpty
MikhailTal

1
@MikhailTal: Czy istnieje powód, dla którego nie edytujesz tej odpowiedzi, aby poprawić nazwę?
GreenMatt

2
@SmallChess: Podobne nazwy, ale nie takie same.
GreenMatt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.