Яке було б комп’ютерну програму, яка грає навмання?


11

Яким би було Ело комп’ютерної програми, яка відтворює випадкові рухи?

Для простоти припустімо, що він ніколи не просить розіграшу чи відставки і ніколи не приймає пропозицію розіграшу.


Уявіть всі шматки на дошці, і ви нападаєте на королеву комп'ютера. У нього шанс переміщення королеви 1 на 16 і, можливо, малий шанс захистити ще один твір.
ZL1Corvette

4
Мені важко уявити будь-якого гравця людини, який грає гірше, ніж випадковий.
Даг Оскар Мадсен

Я вважаю за краще зробити це науково
MikhailTal

Для мого класу AI ми повинні були створити шаховий інтелект. Першою фазою завдання було випадкові дійсні кроки. Коли ці ШІ боролися, то це здебільшого закінчилося внічию. Жадібний AI, який атакує найцінніший шматок, якщо це застосовано, інакше кожен раз випадково бив випадкового AI.
Harrichael

Відповіді:


13

Справа внизу списку рейтингу комп'ютерних шахів для контролю часу 40/4 знаходиться Brutus RND, двигун, який просто вибирає випадкові легальні кроки.

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

Він має рейтинг 205 (станом на 6.06.2018). Це, звичайно, не рейтинг FIDE, але він використовує систему Elo.

Має 0 перемог, 242 програші та 64 нічиї. Нічия пов'язані з несправними програмами, які випадково викликають нічию шляхом повторення або періодично застою, хоча вони, як правило, мають істотну матеріальну перевагу, коли це відбувається.

FIDE має рейтинг 1000. Брут RND просто не зможе встановити високий рейтинг і був би неоцінений.

Якщо проігнорувати рейтинг FIDE, то за системою Elo можливий негативний рейтинг.

Одним із зазначень є те, що FIDE використовує таблицю для обчислення змін у рейтингу, і якщо різниця в рейтингу перевищує 735, жодних змін не відбувається, коли виграє сильний гравець. Це означає, що Брутус ніколи не міг мати рейтинг -5000 або щось подібне, тому що йому потрібно було б втратити очки вражаюче некомпетентним гравцям, які не змогли б поставити мат.

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

Ми залишилися здогадуватися тут. 1000 гравців з рейтингом «Ело» змогли би знизити рейтинг Брута до 265, але оскільки немає гравців з гіршими рейтингами, ми не можемо точно сказати, наскільки далі вони могли би знизити рейтинг Брута, якби вони існували.

Я б здогадувався, що гравці, які мають 500 Elo або гірше, матимуть проблеми з послідовною доставкою матерів, як і несправні програми. Нічия в 3-кратному повторенні або в правилі 50 переміщення не є автоматичними згідно з правилами FIDE, і відбуватимуться лише за умови, що Брут заявив на них. Але людина може втратити, вичерпавши час, а також малювання випадковою тупиком.

Тож я здогадуюсь десь у діапазоні від -200 до 200, якщо FIDE дозволила рейтингам нижче 1000 та дозволила Бруту змагатися.


Звучить високо. Я б здогадався ближче до 100, якщо ходи справді випадкові.
edwina oliver

6

Проблема з випадковою грою полягає в тому, що в середній шаховій позиції багато безлічі рухів (від 20 у відкритті до легко 50 або більше у складних ендграх), але прийнятна лише жменька з них. Випадкові ходи призведуть до тотальної координації з самого початку гри. Більше того, захоплення менш цінних творів було б дуже поширеним, особливо в середній грі. Це говорить, навіть проти надзвичайно слабкого протистояння, комп'ютер, в кінцевому рахунку, буде помилятися: тонни матеріалів будуть торгуватися і, можливо, не так багато користі для комп'ютера, комп'ютер буде, безсумнівно, нерозвинений, його король не буде безпечним і можливо, навіть не заграли ...

Стільки поганих речей, що накопичуються, і дуже швидко призведуть до справжньої поразки машини. Його Ело, ймовірно, буде 0 FIDE.


2
Проти такого двигуна було б навіть важко! Навіть якщо ви ХОЧЕТЕ, щоб вас поставили під контроль, це може пройти вічність, поки двигун не керує ним. Єдиний реалістичний спосіб перемогти випадковий двигун - це якщо противник подає у відставку.
Пітер

Якщо ви навіть трохи знаєте про гру, я повністю згоден. Але якщо ви просто знаєте, як перемістити шматки, навіть не їхню вартість, чи будь-яку стратегію ... Ну, тоді людина і комп’ютер грають у більш-менш рівних умовах.
Пабло С. Окаль

Я думаю, що навіть новачок, який тільки сьогодні вивчив правила, грав би краще, ніж випадковий. Новачок може використовувати евристику, таку як "давайте захоплюємо шматки", яка чудово працює проти випадкового двигуна, тому що ви можете захопити будь-яку частину, навіть якщо вона захищена, або просто залишити ваші шматки висячими, а двигун дуже навряд чи захопить. оскільки у нього є стільки інших марних кроків на вибір. Зрештою, єдина можлива складність для початківця - розібратися, як спаровуватися, але це не повинно бути надто важким, враховуючи ймовірну матеріальну перевагу.
itub

Ні, не важко програти проти випадкового гравця, якщо ти хочеш програти. Ви можете спробувати це за допомогою програми Play Magnus, встановленого для 5-річного віку. Вам просто потрібно змусити ситуацію, коли єдиний законний крок, який він може зробити - це доставити мат. Найпростіший спосіб зробити це - захопити всі його шматки, крім 1 пішака, вловити свого короля, щоб він міг лише просувати пішака, залишити свого короля в першому рангу та влаштувати інші твори, щоб заблокувати короля від втечі, коли пішак просувається та дзвонить перевірити. Це спрацьовує, якщо він сприяє королеві чи граку, тож у вас є 50% шансів програти (або 100%, якщо він ніколи не завищує).
Сілас С. Браун

5

Дійсно випадкова гра набагато гірша, ніж ви могли б подумати. Американський абсолютний рівень дорівнює 100, і ця програма ніколи не підніметься вище за це.


1

Я не знаю , як Go рейтинги порівняти з шахами, але випадкова гра про -3500 там . Оскільки коефіцієнт розгалуження шахів нижчий, я б очікував, що випадковий гравець ело буде вище, можливо, десь від -2000 до -500.


1
Як зазначається у відповіді на сайті chess.stackexchange.com/a/6509/9025 , рейтинг USCF становить 100, тому негативне оцінювання було б неможливо.
Герб Вулф

Просто інша точка зору на питання. У ньому не було визначено, яку рейтингову систему використовувати, а статистичне elo не має "нижньої межі".
Акабаба

1

Гірше, ніж абсолютний новачок, який ледве знає правила гри, тому що принаймні новачок вкладає певну думку у вибір ходу. Їх кроки все ще можуть бути переважно випадковими, але, принаймні, існує деяка оцінка позицій.

Тож рейтинг цього двигуна був би на найнижчому можливому поверсі будь-якої рейтингової системи, яку ви вибрали. Зрештою, це може виграти або розіграти гру з не менш поганим суперником, а потім збільшитись на кілька очок. Однак ви можете очікувати, що рейтинг двигуна швидко знизиться до мінімальної поверху.

У програмі Шеннона "Програмування комп’ютера для гри в шахи" він зазначає, що ймовірність випадкового побиття Ботвінника становить порядку 10 ^ -75. Таким чином, якщо цей випадковий комп'ютер повинен був грати в Ботвінника (або навіть звичайного майстра) нон-стоп протягом життя людини, ми можемо з розумом очікувати, що він ніколи не виграє.

Однак Шеннон продовжує говорити, що випадкова гра - не найгірша стратегія; найгірша стратегія - навмисне грати рухи, які допомагають опоненту. Незважаючи на те, що повний новачок міг би це зробити, велика ймовірність, що вони спробують грати в рухи, які покращують власну позицію.


0

Дуже гарною відповіддю було б це зробити:

Використовуйте numpy, дуже слабкий ігровий движок, 1500 ELO або близько того, і додайте до нього скрипт python. Є багато бібліотек, які надають вам можливі рухи в положенні, тому ми можемо вибрати одну навмання. Я опублікую результати пізніше.

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

Ви також повинні це перевірити.


3
Numpy - це наукова бібліотека з математики, а не шаховий двигун.
svineet

Це також шаховий двигун
MikhailTal

2
chess.stackexchange.com/questions/6034/… Це, здається, називається нулевим
MikhailTal

1
@MikhailTal: Чи є причина, коли ви не редагуєте цю відповідь, щоб виправити ім’я?
GreenMatt

2
@SmallChess: Подібні назви, але не однакові.
GreenMatt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.