Чи є ідеальний алгоритм для шахів? [зачинено]


109

Нещодавно я був на дискусії з людиною, що не кодер, про можливості шахових комп'ютерів. Я не добре розбираюся в теорії, але думаю, що знаю достатньо.

Я стверджував, що не може існувати детермінована машина Тьюрінга, яка завжди вигравала б чи заважала в шахах. Я думаю, що навіть якщо ви шукаєте весь простір усіх комбінацій рухів player1 / 2, одинарний хід, який вирішує комп'ютер на кожному кроці, ґрунтується на евристиці. Базуючись на евристиці, це не обов'язково перемагати ВСІ ті рухи, які може зробити опонент.

Мій друг подумав, навпаки, що комп’ютер завжди виграє або зрівняється, якщо він ніколи не зробить "помилку", хоч (проте ви це визначаєте?) Однак, будучи програмістом, який прийняв CS, я знаю, що навіть ваш хороший вибір - з урахуванням мудрого опонента - може змусити вас зробити врешті "помилкові" кроки. Навіть якщо ви все знаєте, ваш наступний хід є жадібним у відповідності до евристики.

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

Редагувати: Хм ... схоже, я тут поцупив перо. Добре.

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

Я думаю, мій експеримент міркував, що щоразу, коли береться гілка дерева, алгоритм (або запам’ятовуються контури) повинен знайти шлях до товариша (не зв'язавшись) для будь-якої можливої ​​гілки суперника. Після обговорення я куплю той запам’ятовуючий об’єм пам’яті, ніж ми можемо мріяти, всі ці шляхи можна було б знайти.


1
+1: відмінна тема. Однак, я думаю, що це має бути вікі-файдом, як це демонструє різноманітність та обсяг відповідей.
IАнотація

1
"Ви думаєте, я вказав на щось, що ще не є задовільним"? Що ви вказали, це формально не доведено?
S.Lott

2
ак! як може бути 20 різних відповідей на таке чорно-біле запитання! (каламбур не призначений).
Пітер Рекор

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

3
Нагадує про жарт про Perfect Computer Gaming Computer. Граючи білим, він думає і думає, і думає, а потім .... подає у відставку!

Відповіді:


104

"Я стверджував, що не може існувати детермінована машина Тьюрінга, яка завжди вигравала б чи заважала в шахах".

Ти не зовсім прав. Тут може бути така машина. Проблема полягає у величезності державного простору, яку йому доведеться шукати. Це кінцево, він дійсно великий.

Ось чому шахи відпадають на евристику - простір держави занадто величезний (але кінцевий). Навіть перерахувати - набагато менше шукати кожен ідеальний хід по ходу кожної можливої ​​гри - було б дуже-дуже великою проблемою пошуку.

Відкриття прописано, щоб перейти до середини гри, яка дає вам "сильну" позицію. Невідомий результат. Навіть кінцеві ігри - коли їх менше, - важко перерахувати, щоб визначити найкращий наступний хід. Технічно вони обмежені. Але кількість альтернатив величезна. Навіть 2 грака + короля мають щось на зразок 22 можливих наступних кроків. А якщо для спарювання потрібно 6 ходів, ви переглядаєте 12,855,002,631,049,216 ходів.

Робіть математику на ходах відкриття. Поки є лише близько 20 відкриваючих кроків, є щось на кшталт 30 або близько другого ходу, тож до третього кроку ми дивимось на 360 000 альтернативних станів гри.

Але шахові ігри (технічно) обмежені. Величезний, але кінцевий. Там ідеальна інформація. Існують визначені початкові та кінцеві стани. Немає монет або рулонів кісток.


22
Усі кінцеві ігри з 6 штук або менше були перераховані та вирішені. Дивіться таблицю та бітну базу тут: en.wikipedia.org/wiki/Tablebase . Наприклад, є кінцева гра KQNKRBN, де потрібно 517 ходів, щоб змусити товариша! Але загальна кількість шахових ігор приблизно (10 ^ (10 ^ 50)).
HTTP 410

2
Сценарій перемоги - це одне. Вичерпно перераховане - різна річ. Так чи інакше, інформація досконала - все відомо - гра визначається за визначенням.
S.Lott

11
@RoadWarrior: не згоден. Випадкові стосуються погоди. Бог котить кістки. Випадкове не стосується шахів - за визначенням. У шахах є повна інформація. Погода має квантові ефекти - вона не може бути повною.
S.Lott

3
Те, що ускладнює прогноз погоди, - це хаотичні нелінійні фактори, а не будь-які квантові ефекти. Враховуючи достатню обчислювальну потужність та знання, ми могли теоретично створити "правильний" прогноз погоди.
HTTP 410

3
@monojohnny: Правила забороняють три повторення однієї і тієї ж позиції. Шахи просто кінцеві. Він великий, але кінцевий.
С.Лотт

72

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

Спершу ми повинні пам’ятати, що Білий повинен йти першим і, можливо, це дає йому перевагу; можливо, це дає перевагу Чорному

Тепер припустимо, що не існує ідеальної стратегії для Чорних, яка дозволяє йому завжди перемагати / тупик. Це означає, що незалежно від того, що робить Чорний, існує стратегія, яку Білий може дотримуватися, щоб перемогти. Зачекайте хвилину - це означає , що це ідеальна стратегія для білих!

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

Тоді є лише три можливості:

  • Білий завжди може виграти, якщо він грає ідеально
  • Чорний завжди може виграти, якщо він грає ідеально
  • Один гравець може виграти чи розіграти, якщо він грає ідеально (і якщо обидва гравці грають ідеально, то вони завжди заважають)

Але що з них насправді правильне, ми можемо ніколи не дізнатися.

Відповідь на питання - так : повинен бути ідеальний алгоритм для шахів, принаймні для одного з двох гравців.


2
+1, це дійсно чудовий спосіб його пояснення. Я не можу повірити, що ніколи про це не думав!
Зіфре

2
Чому чорний, який не має ідеальної стратегії, означає, що білий має ідеальну стратегію? Що з обома гравцями, які не мають ідеальної стратегії? Якщо ваше значення було правдивим, чи не було б це правдою для кожної гри з двома гравцями, тобто кожна гра має ідеальну стратегію?
Джон М Наглік

8
@john: Оскільки шахи мають досконалу інформацію та відсутні випадкові елементи (на відміну від багатьох, багатьох інших ігор для двох гравців), єдиний спосіб, коли не існує ідеальної стратегії для чорного, було б, якщо білий може примусити перемогу, незважаючи на будь-яку спробу чорний - іншими словами, якщо є ідеальна стратегія для білого.
Дейв Шерохман

2
Насправді така логіка не завжди дотримується , але чи правда в цьому випадку.
BlueRaja - Danny Pflughoeft

4
@john "чому тут стільки дискусій" - адже деякі люди не знають відповіді, але все-таки публікуйте тут.
DJClayworth

30

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

Дослідники витратили майже два десятиліття, переглядаючи 500 мільярдів можливих позицій шашок, що, до речі, є нескінченно малою часткою кількості шахових посад. Намагання шашок включали в себе провідних гравців, які допомагали дослідницькій програмі перевіряти правила перевірки програмного забезпечення, яке класифікувало ходи як успішні чи невдалі. Тоді дослідники пускали програму в середньому на 50 комп'ютерів щодня. Деякі дні програма працювала на 200 машинах. У той час як дослідники стежили за прогресом і відповідно змінювали програму. Фактично, Chinook переміг людей, щоб виграти чемпіонат світу з шашок ще в 1994 році.

Так, ви можете вирішити шахи, ні, ви незабаром.


6
"[Y] ou скоро не буде", це трохи заниження. Крім межі очікуваної тривалості Всесвіту, у вас є питання зберігання - кількість штатів у Шахах значно перевищує 500 мільярдів мільярдів шашок; насправді він перевищує кількість частинок у Всесвіті.
Майкл Дорфман

30
"[...] насправді він перевищує кількість частинок у Всесвіті." Поки вона не перевищує кількість станів частинок у Всесвіті, є ще надія ;-)
Карстен

1
що відбувається, коли програма, яка завжди змушує опонента програти, грає проти себе ????
Джон Деметріу

1
@BCS хм, що робити, якщо є передбачення, в якому, якщо я граю як другий гравець, а інший використовує той же евристичний, як і я, то слід дотримуватися цього евристики, щоб виграти, і якщо перший гравець має аналогічний евристичний ???? ?
Джон Деметріу

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

15

Це не питання про комп’ютери, а лише про гру в шахи.

Питання в тому, чи існує безпечна стратегія, щоб ніколи не програти гру? Якщо така стратегія існує, то комп’ютер, який знає все, завжди може використовувати її, і вона вже не є евристикою.

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

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


Отже, хто мав бажання спростувати мою відповідь? Чи в цьому щось не так? Хочете вийти перед собою?
ypnos

@ypnos, я взагалі не проголосував вашу відповідь. Я просто прокоментував, щоб сказати, щоб не пускати випадкових виборців. Ви набрали 30 повторень і програли лише 1. Також +1;)
mmcdole

1
Кілька причин заборони. 1) Відомо, що існує алгоритм розв язання гри, саме алгоритм недоцільно обчислювати за допомогою будь-якої можливої ​​технології. 2) Розв’язання гри НЕ означає, що існує їхня безпечна стратегія. Tic-tac-toe вирішено, але для другого гравця немає стратегії, яка б уникнула втрати.
DJClayworth

2
"Це не питання про комп'ютери, а лише про гру в шахи". Що ж, інформатика насправді не стосується комп’ютерів. Вони просто інструмент. Інформатика працює без комп’ютерів.
Янус Трольсен

1
Це насправді питання про комп'ютери, оскільки питання полягає в тому, чи може існувати машина Тьюрінга (= Комп'ютер), яка вирішує шахи.
SDwarfs

14

Я підходжу до цієї теми дуже пізно, і ви вже зрозуміли деякі проблеми. Але як колишній майстер та екс-професійний шаховий програміст, я думав, що можу додати кілька корисних фактів та цифр. Існує кілька способів вимірювання складності шахів :

  • Загальна кількість шахових ігор приблизно 10 ^ (10 ^ 50). Ця кількість немислимо велика.
  • Кількість шахових ігор, що становить 40 ходів або менше, становить приблизно 10 ^ 40. Це все ще неймовірно велика кількість.
  • Кількість можливих шахових позицій становить близько 10 ^ 46.
  • Повне дерево пошуку шахів (число Шеннона) становить приблизно 10 ^ 123, виходячи із середнього коефіцієнта розгалуження 35 та середньої тривалості гри 80.
  • Для порівняння, кількість атомів у спостережуваному Всесвіті зазвичай оцінюється приблизно 10 ^ 80.
  • Усі кінцеві ігри, що складаються з 6 або менше, були зібрані та вирішені .

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


3
Давай Ви повинні думати про проблему інакше. Не думайте про кількість ігор, тому що транспозіції та альфа-бета-алгоритми та подібне скорочення дуже сильно повертаються. Подумайте про позиції дошки (10 ^ 60) або комбінації шахових фігур (100 мільйонів). Що стосується квантових обчислень, то це банально.
lkessler

2
Альфа-бета в цьому контексті (розв’язування шахів) вимагала б ідеальної функції оцінювання. Як і положення дошки та комбінації штук. У нас немає досконалої функції оцінювання, тому квантові обчислення нам не допомагають.
HTTP 410

1
Кожен раз, коли я думаю, що щось є "дріб'язковим", і я впевнений, що цього ще ніхто не зробив, я також впевнений, що хоч раз помилявся.
Дін J

2
@lkessler: Позиція ради не розповідає всієї історії. Принаймні деяка історія гри потрібна для заходу чи захоплення чи падіння через нестачу захоплення або ходу пішака, а всю історію для жеребкування повторенням. Більше того, оскільки останнім часом це був помітний результат дослідження для квантового комп'ютера на коефіцієнт 15, я б сказав, що зараз немає нічого тривіального з квантовими обчисленнями.
Девід Торнлі

2
Для порівняння тут, якщо ви можете генерувати всі можливі шахові позиції, ви можете тривіально забити будь-який шифр із 128-бітовою клавішею, оскільки 10 ^ 46 становить приблизно 2 ^ 152 або 2 ^ 153. Є чудові причини вважати, що це неможливо перед тепловою смертю Всесвіту.
Девід Торнлі

9

Деякі ігри насправді вирішені. Tic-Tac-Toe - це дуже легкий варіант, для якого можна створити AI, який завжди виграє або зрівняється. Нещодавно Connect 4 також було вирішено (і показало, що він несправедливий до другого гравця, оскільки ідеальна гра призведе до його програшу).

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


8

Середній робочий стіл в 1000 доларів зможе вирішити шашки за 20 хвилин до 2040 року (5x10 ^ 20 розрахунків).

Навіть із такою швидкістю все-таки знадобиться 100 цих комп'ютерів приблизно 6,34 x 10 ^ 19 років, щоб вирішити шахи. Все ще нездійсненно. Навіть близько не.

Близько 2080 року наші середні настільні комп’ютери матимуть приблизно 10 ^ 45 обчислень за секунду. Один комп'ютер буде мати обчислювальну потужність для вирішення шахів приблизно за 27,7 годин. Це, безумовно, буде зроблено до 2080 року до тих пір, поки обчислювальна потужність продовжить зростати, як це було за останні 30 років.

До 2090 року на робочому столі 1000 доларів буде достатньо обчислювальної потужності, щоб вирішити шахи приблизно за 1 секунду ... тож до цієї дати це буде абсолютно тривіально.

З огляду на те, що шашки були вирішені в 2007 році, і обчислювальна здатність вирішити її за 1 секунду буде відставати приблизно на 33-35 років, ми, мабуть, приблизно підрахуємо, що шахи будуть вирішені десь між 2055-2057 роками. Ймовірно, що з тих пір, коли з'явиться більше обчислювальної потужності (що станеться через 45 років), більше таких проектів може бути присвячено таким проектам. Однак я б сказав, що найчастіше 2050 року, а пізніше 2060 року.

У 2060 році для вирішення шахів знадобиться 100 середніх настільних 3,17 х 10 ^ 10 років. Зрозумійте, я використовую комп'ютер у розмірі 1000 доларів як мій орієнтир, тоді як більші системи та суперкомп'ютери, ймовірно, будуть доступні, оскільки співвідношення ціни та продуктивності також покращується. Крім того, їх порядок величини обчислювальної потужності збільшується більш швидкими темпами. Поміркуйте, що суперкомп'ютер тепер може виконувати обчислення 2,33 x 10 ^ 15 в секунду, а комп’ютер на 1000 доларів приблизно 2 x 10 ^ 9. Для порівняння, 10 років тому різниця становила 10 ^ 5 замість 10 ^ 6. До 2060 р. Порядок різниці величин, ймовірно, становитиме 10 ^ 12, і навіть це може зрости швидше, ніж передбачалося.

Багато чого залежить від того, чи будемо ми, як люди, прагнути вирішувати шахи, але обчислювальна сила зробить це можливим протягом цього часу (поки наші темпи триватимуть).

З іншого боку, гра Tic-Tac-Toe, яка набагато, набагато простіше, має 2 653 002 можливих розрахунків (з відкритою дошкою). Обчислювальна потужність для вирішення Tic-Tac-Toe приблизно за 2,5 (1 мільйон розрахунків в секунду) секунд була досягнута в 1990 році.

Просунувшись назад, у 1955 році комп'ютер мав можливість вирішувати Tic-Tac-Toe приблизно за 1 місяць (1 розрахунок за секунду). Знову ж таки, це базується на тому, що ви отримаєте 1000 доларів, якби ви змогли упакувати його в комп'ютер (робочого столу в 1000 доларів, очевидно, не було в 1955 році), і цей комп'ютер був би присвячений вирішенню Tic-Tac-Toe .... який у 1955 р. обчислення були дорогими і не використовувалися б для цієї мети, хоча я не вірю, що існує дата, коли Tic-Tac-Toe вважався комп'ютером "вирішеним", але я впевнений, що він відстає від фактичної обчислювальної потужності.

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


9
"Чи знаєте ви, що продаж рекордів на дискотеку збільшився на 400% за рік, що закінчувався 1976 р. Якщо ці тенденції продовжуватимуться ... ААЙ! - Дискотека Стю
Джеремі Фріснер

2
Закон Мура - обчислювальна потужність подвоюється кожні 18 місяців - швидше за все, вийде з ладу близько 2015 року. Або дизайн комп'ютерних процесорів повинен буде кардинально відрізнятися. Тож 2080 рік - не реальна мета.
Філіп Сміт

3
@Philip: Тактова швидкість процесора настільних комп'ютерів лише незначно зросла з 2003 року, і вдосконалення з тих пір в основному були збільшені кеш-пам'яті та декількох ядер. Оскільки процесор 3 ГГц має один тактовий цикл за той час, який потрібен для переміщення світла на 4 дюйми / 10 см, швидкість тактової частоти не може зростати нескінченно довго. Більше того, паралелізм, як правило, важкий. Прогнозування експоненціального збільшення на п’ятдесят років, коли воно почало руйнуватися сім років тому, не здається надійною ставкою.
Девід Торнлі

1
@David - це все правда. Але пропускає суть. Якщо вдвічі менше розміру компонентів на мікросхемі, електрони отримують вдвічі більше, ніж на одній тактовій швидкості. Це те, що підживлює закон Мура.
Філіп Сміт

3
@Philip: Половинка, звичайно, не може тривати вічно. Атом кремнію становить близько чверті нанометра, а виготовлення мікросхем вже до десятка нанометрів. Більше того, на квантових рівнях частинки підкоряються статистичним правилам, а не абсолютним правилам, тому необхідно рухати навколо достатньо електронів за раз, щоб викликати закон великої кількості. Поки закон Мура був десь між законом і самореалізаційним пророцтвом, але це закінчується десь досить скоро.
Девід Торнлі

7

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


4
У технічному плані правило п'ятдесяти рухань, як повторення в три кроки (що також обмежує речі - існує обмежена кількість можливих позицій, тому множення цього числа на три дає нам верхню межу) не викликає нічиї. Швидше, це дає можливість будь-якому гравцеві вимагати нічию. Зазвичай програв гравець зробить це, але це не потрібно. Тому цілком легальна гра: 1. Nc3 Nc6 2. Nb1 Nb8 3. Nc3 Nc6 4. Nb1 Nb8, повторюється назавжди. І якщо я не помиляюся, не було спростовано, що це не результат двох ідеальних алгоритмів, які грають як білі, так і чорні.
Lenoxus

6

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


5

Для запису є комп’ютери, які можуть виграти чи зв'язати на шашках . Я не впевнений, чи можна було б зробити те саме для шахів. Кількість рухів набагато більша. Також речі змінюються, тому що шматки можуть рухатися в будь-якому напрямку, а не тільки вперед і назад. Я думаю, хоча я не впевнений, що шахи є детермінованими, але існує дуже багато можливих кроків для комп'ютера, щоб наразі визначити всі рухи за розумну кількість часу.


1
Це можна зробити, але чи можна це зробити на комп’ютері, який ми, швидше за все, бачимо?
BCS

1
Напевно, не в нашому житті. Всі справді цікаві дослідження в цій галузі проводяться в грі Go. :)
Білл Ящірка

IIRC більшість шестирічних дітей може бути будь-яким комп’ютером на Go.
BCS

2
@BCS: Більше не. Найкращі програми Go зараз зараз перемагають гравців данського (професійного) рівня.
Білл Ящірка

1
@BlueRaja: Це було у 2008 році. Я не знаю, який зараз рекорд, але MoGo побив профі з 6 та 7 камінням на 19x19. ireport.cnn.com/docs/DOC-214010
Білл Ящірка

5

Я думаю, ти мертвий. Такі машини, як Deep Blue та Deep Thought, запрограмовані за допомогою декількох заздалегідь визначених ігор та розумних алгоритмів для розбору дерев у кінцях цих ігор. Це, звичайно, драматичне спрощення. Завжди є шанс «побити» комп’ютер по ходу гри. Під цим я маю на увазі зробити крок, який змушує комп'ютер зробити рух, який є менш оптимальним (що б там не було). Якщо комп'ютер не може знайти найкращий шлях до часового обмеження для переїзду, він може цілком помилитися, вибравши один із менш бажаних шляхів.

Існує ще один клас шахових програм, який використовує реальне машинне навчання, або генетичні алгоритми програмування / еволюції. Деякі програми розвиваються і використовують нейронні мережі тощо для прийняття рішень. У такому випадку я б міг уявити, що комп’ютер може зробити "помилки", але все ж таки переможе.

Існує захоплююча книга про цей тип GP, який називається Blondie24, який ви можете прочитати. Йдеться про шашки, але це може стосуватися шахів.


Ось так ви перемагаєте сьогоднішні комп’ютери в шахах. Завтра буде краще. Я згоден з вами, хоча Blondie24 є захоплюючим.
Білл Ящірка

Проголосували резервну копію. Ця публікація не заслуговує на негативну оцінку.
Кібіс

На жаль, проблема шахової гри занадто велика, щоб машинне навчання працювати. Вони ніколи не могли отримати програму навчання шахів, щоб навіть грати по-новому без помилок. Евристика краща. Але Brute Force був ще кращим. Область машинного навчання лише засвоїла свої шахи з шахом.
lkessler

Шахові програми не допускають короткострокових помилок, і найкращі програми грають краще, ніж чемпіони світу. Я думаю, що остання версія 64-бітної версії Rybka оцінена як 3200 ELO
Alex

5

З теорії ігор, про яку йдеться у цьому питанні, відповідь - так, у Шахи можна грати чудово. Ігровий простір відомий / передбачуваний, і так, якби у вас були квантові комп'ютери онука, ви, ймовірно, могли усунути всю евристику.

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

Othello - це ще одна гра, в яку сучасні комп’ютери можуть легко грати ідеально, але пам'ять машини та процесор потребує трохи допомоги

Шахи теоретично можливі, але практично неможливі (у 2008 р.)

i-Go складний, простір можливостей виходить за межі кількості атомів у Всесвіті, тому нам може знадобитися певний час, щоб зробити ідеальну машину i-Go.



4
Технічно це комбінаторна теорія ігор.
Анафорія

5

Шахи - приклад матричної гри, яка за визначенням має оптимальний результат (подумайте, рівновага Неша). Якщо кожен з гравців 1 та 2 зробить оптимальні кроки, ВЖЕ ВИНАГИ буде досягнуто певного результату (чи буде це програш-виграш досі, поки невідомо).


5

Як шаховий програміст з 1970-х, я, безумовно, маю думку з цього приводу. Те, що я написав близько 10 років тому, до цих пір досі є правдою:

"Незавершена робота та виклики шаховим програмістам"

Тоді я думав, що ми зможемо вирішити шахи умовно, якщо зробити все належним чином.

Шашки були вирішені нещодавно (Yay, Університет Альберти, Канада !!!), але це було ефективно зроблено Brute Force. Щоб робити шахи умовно, вам доведеться бути розумнішими.

Якщо, звичайно, квантові обчислення не стануть реальністю. Якщо так, шахи вирішаться так само легко, як і Tic-Tac-Toe.

На початку 1970-х у Науковому американі була кратка пародія, яка привернула мою увагу. Це було оголошення про те, що гру в шахи вирішував російський шаховий комп’ютер. Він визначив, що є один ідеальний хід для білих, який забезпечив би перемогу при ідеальній грі обох сторін, і ця хода така: 1. a4!


3

Тут багато відповідей складають важливі ігрові теоретичні моменти:

  1. Шахи - це кінцева, детермінована гра з повною інформацією про стан гри
  2. Ви можете вирішити кінцеву гру та визначити досконалу стратегію
  3. Однак шахи настільки великі, що ви не зможете повністю вирішити це методом грубої сили

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

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

Наведені нижче методи, наприклад, усі масово скорочують необхідний простір пошуку:

  • Методи обрізки дерев, такі як Alpha / Beta або MTD-f, вже значно скорочують простір пошуку
  • Достовірна виграшна позиція. У цій категорії потрапляє багато закінчень: Вам не потрібно шукати KR проти K, наприклад, це перевірена перемога. Деякою роботою можна довести ще багато гарантованих виграшів.
  • Майже певні виграші - за «досить добру» гру без дурних помилок (скажімо про ELO 2200+?) Багато шахових позицій - це майже певні виграші, наприклад гідна матеріальна перевага (наприклад, додатковий лицар) без компенсації позиційної переваги. Якщо ваша програма може змусити таку позицію і має достатньо хорошу евристику для виявлення позиційної переваги, можна сміливо припускати, що вона виграє або принаймні виграє зі 100% -ною ймовірністю.
  • Евристика пошуку дерев - при достатньому хорошому розпізнаванні шаблонів можна швидко зосередитись на відповідному підмножині "цікавих" рухів. Ось так грають людські гросмейстери, тому явно це не погана стратегія ..... а наші алгоритми розпізнавання шаблонів постійно вдосконалюються
  • Оцінка ризику - краща концепція "ризикованості" позиції дасть змогу набагато ефективніше шукати, орієнтуючись на обчислювальні сили на ситуації, коли результат є більш невизначеним (це природне розширення пошуку спокою )

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

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

Додаткова примітка щодо "досконалості":

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

  • Завжди вигравайте у будь-яких ситуаціях, коли можна виграти виграш, незалежно від того, наскільки складна виграшна комбінація. Будуть ситуації на межі між виграшем / нічиєю, де це надзвичайно важко підрахувати ідеально.
  • Використовуючи всю наявну інформацію про потенційну недосконалість у грі вашого опонента, наприклад, підсумовуючи, що ваш опонент може бути занадто жадібним і навмисно грати трохи слабкішою лінією, ніж зазвичай, на підставі того, що він має більший потенціал, щоб спокусити опонента зробити помилку. Поза проти недосконалих опонентів насправді може бути оптимальним програти програш, якщо ви оціните, що опонент, ймовірно, не помітить вимушеної перемоги, і це дає вам більш високу ймовірність виграти себе.

Вдосконалення (особливо це стосується недосконалих і невідомих супротивників) - набагато важча проблема, ніж просто бути непереможним.


Мати недосконалих супротивників - це не реальна проблема. Це просто робить ідеального гравця виграш / нічия (що завжди ідеальний результат) за менший хід. Оптимальний хід у кожній позиції завжди кращий або рівний іншим можливим рухам (за визначенням). Таким чином, субоптимальні ходи дозволяють опоненту досягти оптимального кінцевого стану (виграти / нічия) раніше або навіть дозволяють досягти кращого результату. Наприклад, якщо чорний колір завжди буде вільним, якщо білий грає ідеально, можливо, чорний виграє, якщо білий грає лише один єдиний неоптимальний хід. Але так, це повинно трохи збільшити складність аналізу.
SDwarfs

@Stefan - недосконалі супротивники - це величезна проблема, якщо ви дбаєте про оптимальну гру. Зокрема, ви можете уявляти ситуації, коли насправді бажано грати в програв (тобто хід, коли ідеальний противник напевно би вас перебив), якщо ви знаєте, що ймовірність того, що ваш опонент допустить помилку, досить висока.
mikera

оптимальна гра на мою думку означає досягнення найкращого можливого результату з нульовим ризиком. Ваш противник, ймовірно, "слабкий", але коли ви граєте в цю програшну ходу, він, на жаль, може зіграти хороший крок випадково. Турбота про субоптимальних опонентів є актуальною лише у тому випадку, якщо є лише вибір між програючими рухами, коли один з них має більші шанси на помилку (субоптимальний граючий) опонент, що фактично призводить до нічиї чи перемоги.
SDwarfs

1
Це не звичайне визначення оптимального в теорії ігор. Оптимальний зазвичай означає максимізацію очікуваного результату. В цьому випадку, оптимальний гравець буде приймати певний ризик умова , що він отримує кращий результат в середньому .
mikera

У такому випадку ви абсолютно праві!
SDwarfs

2

якщо ви шукаєте весь простір усіх комбінацій рухів player1 / 2, то єдиний хід, який вирішує комп'ютер на кожному кроці, ґрунтується на евристиці.

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


Власне, цитата правильна. Програми розглядають усі можливі рухи обох сторін у поточному положенні та використовують евристику, щоб знайти вдалий хід, щоб вести гру в напрямку сприятливої ​​для комп'ютера позиції.
Білл Ящірка

1
Ні, вони не дивляться на всі можливі кроки. Вони використовують евристику з нульовим рухом для обрізки дерева.
Олексій

2

"Чи існує ідеальний алгоритм для шахів?"

Так, є. Можливо, Білий завжди перемагає. Можливо, для Чорних завжди перемагає. Можливо, для обох завжди прив’язати хоча б. Ми не знаємо, що, і ніколи не дізнаємось, але це, безумовно, існує.

Дивитися також


1
Будучи досить пристойним шахістом і детально вивчаючи проблему протягом багатьох років, я на 99,9% впевнений, що стратегія префекта в шахах для обох гравців призводить до нічиєї (те саме, що було доведено в шашки). Існує також доказ того, що в міру збільшення сили гравця збільшується і відсоток нічиїх.
mikera

2

Я знайшов цю статтю Джона МакКуаррі, в якій згадується робота "батька теорії ігор" Ернста Фрідріха Фердинанда Зермело . Він робить такий висновок:

У шахах або білий може примусити перемогу, або чорний може виграти перемогу, або обидві сторони можуть примусити принаймні нічию.

Логіка здається мені звуковою.


2

Це ідеально вирішимо.

Є 10 ^ 50 непарних позицій. На мою думку, кожна позиція вимагає для зберігання мінімум 64 круглих байта (кожен квадрат має: 2 біта приналежності, 3 шматочки). Після їх зіставлення позиції, які є контрольними, можуть бути ідентифіковані, а позиції можна порівняти, щоб утворити відносини, показуючи, які позиції призводять до інших позицій у великому дереві результатів.

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


1

Я лише 99,9% переконаний у твердженні, що розмір простору держави унеможливлює сподівання на рішення.

Звичайно, 10 ^ 50 - це неможливо велика кількість. Назвемо розмір простору стану n.

Що залежить від кількості ходів у найдовшій можливій грі? Оскільки всі ігри закінчуються обмеженою кількістю ходів, існує така зв'язана, назвіть її m.

Починаючи з початкового стану, ви не можете перерахувати всі n рухів у просторі O (m)? Звичайно, це займає O (n) час, але аргументи розмірів Всесвіту прямо не вирішують цього питання. Про (м) місця може бути навіть не дуже багато. Для простору O (m) ви також не могли відстежувати під час цього обходу, чи продовження будь-якого стану по шляху, який ви проходите, веде до EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin або BlackMayWinOrForceDraw? (Існує решітка, залежно від того, чия сторона вона, анотація кожного стану в історії вашого обходу за допомогою ґрат.)

Якщо я чогось не пропускаю, це алгоритм простору O (n) часу / O (m) для визначення, до якої з можливих категорій шахи потрапляють. Вікіпедія наводить оцінку віку Всесвіту приблизно в 10 ^ 60-й планський час. Не вдаючись до космологічного аргументу, давайте здогадаємось, що залишилося стільки часу до тепла / холоду / будь-якої смерті Всесвіту. Тому нам потрібно оцінювати один крок кожні 10 ^ 10-ти Планк-раз або кожні 10 ^ -34 секунди. Це неможливо короткий час (приблизно на 16 порядків коротший, ніж найкоротший час, який коли-небудь спостерігався). Давайте оптимістично скажемо, що із супер-пупер-хорошою реалізацією, що працює на вершині лінії присутній-або-forseen-не-квантовий-P-is-a-належно-підмножина NP-технології, ми могли б сподіватися оцінити (візьмемо один крок вперед, класифікувати отриманий стан як проміжний стан або один із трьох кінцевих станів) станів зі швидкістю 100 МГц (один раз на 10 ^ -8 секунд). Оскільки цей алгоритм дуже паралельний, це потребує того, що нам потрібно 10 ^ 26 таких комп'ютерів або приблизно один на кожен атом мого тіла, а також можливість збирати їх результати.

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

Можна також сподіватися дещо зменшити визначення шахів і переконати всіх, що це все ще морально та сама гра. Чи насправді потрібно вимагати повторення позицій 3 рази перед нічиєю? Чи насправді нам потрібно, щоб сторона, що тікає, демонструвала здатність втекти за 50 ходів? Хтось навіть розуміє, що, до біса, дотримується правила про перехід ? ;) Більш серйозно, чи насправді нам потрібно змушувати гравця рухатись (на відміну від того, щоб малювати чи програвати), коли його рухається лише для втечі перевірки, або тупик - це пасивне захоплення? Чи можемо ми обмежитися вибором творів, до яких може бути підвищена пішак, якщо бажана акція, яка не є королевою, не призведе до негайної перевірки чи мат-мату?

Я також не впевнений у тому, наскільки доступність кожного комп'ютерного хеш-доступу до великої бази даних пізніх станів ігор та їх можливих результатів (що може бути відносно здійсненним на наявному апаратному забезпеченні та з існуючими базами даних про кінцеві ігри) могло допомогти в обрізанні пошуку раніше. Очевидно, ви не можете запам'ятати всю функцію без O (n) зберігання, але ви можете вибрати велике ціле число і запам'ятати, що багато кінцевих ігор, що перераховуються назад, від кожного можливого (або, навіть не дуже важко неможливо, я вважаю) кінцевого стану.


1
Ваш m = 5898. Правила шахів FIDE визначають, що вам потрібно перемістити пішака або взяти шматок (те, що безповоротно змінює гру) принаймні кожні 50 ходів (називається правилом 50 ходів) або один з гравців може претендувати на нічию. Було підраховано, що найдовша гра - 5898 ходів, якщо обидва гравці співпрацюють і вимагають жеребкування якомога швидше. Продовжувати грати не має сенсу, якщо обидва гравці можуть претендувати на нічию. Якщо гравець помітить, що він / вона втрачає, він / вона може претендувати на нічию, даючи такий же результат. Дивіться: chess.com/blog/kurtgodden/the-longth-possible-chess-game
SDwarfs

1
Примітка: m = 5898 - кількість "ходів". Максимальна кількість половинних ходів - (118-3) * 100 + 3 * 99 = 11797. Доказ ви можете знайти тут (німецька!): De.wikipedia.org/wiki/50-Z%C3%BCge-Regel# Schachmathematik
SDwarfs

1

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

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

Центральний вузол був би початком гри. Кожна гілка кожного вузла символізувала б хід, кожна з яких відрізняється від її бретенських ходів. Представляючи його в цій садибі, знадобиться багато ресурсів, особливо якщо ви це робили на папері. На комп’ютері це займе, можливо, сотні терабайт даних, оскільки у вас буде дуже багато повторюваних кроків, якщо ви не змусили гілки повернутися.

Однак запам'ятати такі дані було б неправдоподібно, якщо не неможливо. Щоб комп'ютер розпізнав найоптимальніший хід, щоб здійснити (максимум) 8 миттєво можливих рухів, було б можливо, але не правдоподібно ... так як цьому комп’ютеру потрібно було б мати можливість обробляти всі гілки минулого цього переміщення, весь шлях до висновку, порахуйте всі висновки, які призводять до виграшу або тупикової ситуації, а потім дійте за цією кількістю виграшних висновків проти втрати висновків, і для цього знадобиться оперативна пам’ять, здатна обробляти дані в терабайти, або більше! А за допомогою сучасних технологій такий комп’ютер вимагатиме більше, ніж залишок у банку 5 найбагатших чоловіків та / або жінок у світі!

Тож після цього розгляду це можна було зробити, однак, ніхто не міг цього зробити. Таке завдання потребує 30 найяскравіших розумів, що живуть сьогодні, не лише у шахах, але й у науці та комп'ютерних технологіях, і таке завдання можна було б виконати лише за умови (давайте поставити його цілком у базову перспективу) ... вкрай зрештою гіпер супер-пупер комп'ютер ... який не міг би існувати принаймні століття. Це буде зроблено! Тільки не в цьому житті.


1

У вашому мисленому експерименті є дві помилки:

  1. Якщо ваша машина Тьюрінга не обмежена (в пам'яті, швидкості, ...), вам не потрібно використовувати евристику, але ви можете обчислити оцінку кінцевих станів (виграш, програш, нічия). Щоб знайти ідеальну гру, тоді вам просто потрібно використовувати алгоритм Minimax (див. Http://en.wikipedia.org/wiki/Minimax ), щоб обчислити оптимальні рухи для кожного гравця, що призведе до однієї або декількох оптимальних ігор.

  2. Також немає обмежень щодо складності використаної евристики. Якщо ви можете обчислити ідеальну гру, є також спосіб обчислити з неї ідеальну евристику. Якщо потрібно, це лише функція, яка відображає шахові позиції таким чином: "Якщо я в цій ситуації, S - найкращий хід" М ".

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

Результат ідеальної гри в шашки вже "підрахований". Якщо людство раніше не знищить себе, буде проведено також підрахунок шахів одного дня, коли комп'ютери розвинулися достатньо, щоб мати достатню кількість пам'яті та швидкості. Або у нас є якісь квантові комп'ютери ... Або поки хтось (дослідник, шахові експерти, геній) не знайде алгоритми, які значно знижують складність гри. Навести приклад: Яка сума всіх чисел між 1 і 1000? Можна або обчислити 1 + 2 + 3 + 4 + 5 ... + 999 + 1000, або ви можете просто обчислити: N * (N + 1) / 2 з N = 1000; результат = 500500. Тепер уявіть, що не знаєте про цю формулу, ви не знаєте про математичну індукцію, ви навіть не знаєте, як перемножувати чи додавати числа, ... Отже, можливо, існує невідомий на даний момент алгоритм, який в кінцевому рахунку зменшує складність цієї гри, і для того, щоб обчислити найкращий хід за допомогою поточного комп’ютера, знадобиться лише 5 хвилин. Можливо, навіть можна було б оцінити його як людину за допомогою ручки та паперу, або навіть у вашій свідомості, давши ще трохи часу.

Отже, швидка відповідь: Якщо людство виживе досить довго, це лише питання часу!


0

Це може бути вирішуваним, але щось мене турбує: Навіть якщо все дерево можна було б пройти, все ще немає способу передбачити наступний крок суперника. Ми завжди мусимо базувати свій наступний крок на стані суперника і робити «найкращий» хід доступним. Потім, виходячи з наступного стану, ми робимо це знову. Отже, наш оптимальний хід може бути оптимальним, якщо противник певним чином рухатиметься. Для деяких кроків суперника наш останній хід, можливо, був би неоптимальним.

Я просто не бачу, як міг бути «ідеальний» крок на кожному кроці.

Щоб це було так, для кожного стану [у поточній грі] повинен бути шлях до дерева, який веде до перемоги, незалежно від наступного кроку суперника (як у tic-tac-toe), і мені важко час з'ясувати це.


5
Ідеальний хід визначається стратегією "minmax": саме цей хід максимально підвищує ваш мінімальний рахунок (враховуючи всі можливі рухи, які може зробити опонент). Або кажучи іншим способом, він передбачає, що опонент також грає чудово.
Нік Джонсон

Це цікавий момент. Чи може виникнути ситуація, коли реакція на найкращий хід поставить вас у невигідність, якщо ваш опонент не зробить найкращий можливий хід? Які наслідки це має?
Нона Урбіз

Я не математик і не дуже хороший шахіст; Я також припускав, що теоретично (чи слід знати все ігрове дерево), що відповідь на це - «так». Однак тепер, коли ви згадуєте про цю проблему [вибір іншого гравця], чи означає це, що система потенційно непередбачувана? Чи є в грі середина, коли інший гравець може принести недолік? Це чимось схоже на те, що Perceptron (нейронна мережа) може вивчити "АБО" та "І", але ніколи не може зрозуміти "XOR"? Чи є шахи прикладом системи "Хаотичність"? FWIW, IMHO Я думаю, що відповідь на даний момент здається "невідомим".
monojohnny

@Nona За визначенням, цей хід був би найкращим кроком. Припущення немає.
piccolbo

@piccolbo: Краще - один із найкращих кроків. Існують позиції в шахах, де декілька ходів призводять до однакового результату (виграш, нічия або програш в однаковій кількості рухів).
SDwarfs

0

Математично шахи були вирішені алгоритмом Minimax , який починається з 1920-х років (знайдений Борелем або фон Нойманом). Таким чином, машина для тюрінга справді може грати в ідеальні шахи.

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

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


-1

Так , у математиці шахи класифікуються як визначена гра, це означає, що він має досконалий алгоритм для кожного першого гравця, це доводиться правдою навіть для шахматної дошки, тому, можливо, одного дня, можливо, квантовий AI знайде ідеальну стратегію, і гра пропала

Детальніше про це у цьому відео: https://www.youtube.com/watch?v=PN-I6u-AxMg

Є також квантові шахи, де немає математичного доказу того, що це визначається грою http://store.steampowered.com/app/453870/Quantum_Chess/

і там ви детальне відео про квантові шахи https://chess24.com/en/read/news/quantum-chess


-2

Звичайно Є лише 10 на потужність п'ятдесят можливих комбінацій штук на дошці. Маючи це на увазі, щоб грати до кожної компіляції, вам знадобиться зробити менше 10 на потужність п’ятдесяти ходів (включаючи повтори, помноживши це число на 3). Отже, у шаховому шасі потужність менше десяти, ніж на десять. Просто виберіть тих, що ведуть до мат-мату, і ви добре їдете


-3

64-бітова математика (= шахова дошка) та побітні оператори (= наступні можливі рухи) - все, що вам потрібно. Так просто. Brute Force зазвичай підбирає найкращий спосіб. Звичайно, не існує універсального алгоритму для всіх позицій. У реальному житті розрахунок також обмежений у часі, час очікування зупинить його. Хороша шахова програма означає важкий код (пройдені, подвійні пішаки тощо). Маленький код не може бути дуже сильним. Відкриття та завершення баз даних просто заощаджують час на обробку, якусь попередньо оброблену інформацію. Я маю на увазі пристрій - ОС, можливість набору різьби, оточення, вимоги до апаратного забезпечення. Мова програмування важлива. У всякому разі, процес розробки цікавий.

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