Альтернативні підходи до програмування шахових двигунів


14

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

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

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

Питання: Чи є альтернативні спроби запрограмувати (не обов’язково сильний, але не випадковий) шаховий двигун, який не відповідає цій схемі?


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

Відповіді:


13

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

Нещодавно з'явилася ще одна спроба дозволити двигуну навчатись шахам за допомогою Deep Learning (можливо, це заохочує успіх Google AI Go AI ). Згідно зі статтею, до якої я посилався, вони були досить успішними та зуміли досягти сили ІМ.


1
Згідно з моїм розумінням, Alpha Go працює точно так само, як описано в ОП, і лише функція eval з (2.) заснована / створена за допомогою глибокого навчання. Інша відповідь ніби якось погоджується.
Герман Доппес

According to the article I linked to, they were quite successful and managed to reach IM strengthале якщо ви прочитаєте оригінальний документ, ви побачите, що стаття дуже перебільшує успіх.
Сальвадор Далі

1
@ HermannDöppes Ні, AlphaGo заснований на пошуку дерев Монте-Карло.
HelloWorld

3

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

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

Інші можливості:

  • Графічне графічне програмування
  • Пошук дерев Монте-Карло

Більшість вашої відповіді має бути коментарем під [відповідь Glorfindel ] ( chess.stackexchange.com/a/16293/2789 . Частина, яка насправді вирішує питання, складається з семи слів, що майже не достатньо для відповіді. Також , "Шахове програмування GPU" - це лише спосіб паралелізації того алгоритму, який ви могли б використовувати в іншому випадку, тому я не думаю, що це справді "підхід" у тому сенсі, який шукає питання, скоріше, це просто метод реалізації.
Девід Річербі

-2

Звичайно! ЯКЩО ви справді просто маєте на увазі .... "теоретично, чи існують інші методи кодування шахового двигуна?" ... Тоді так !!

Наприклад .... можна зберегти копію кожної можливої ​​позиції в шахах (я знаю величезна кількість) і мати оцінку для кожної з них. Тоді його відповідь на будь-яке задане питання (тобто, "найкращий хід для білих у X положенні"), буде відомо відразу, лише переглянувши цю дошку. Чи сучасний стан комп'ютерних апаратних засобів такий, що це мало б сенс? Ні. Але ви цього не запитували.

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