Чи є шаховий двигун, який НЕ використовує грубу силу пошуку?


10

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

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

Чи є якийсь шаховий двигун, який не розраховує на підхід грубої сили, щоб знайти свої кроки?


9
Магнус Карлсен. ;)
Уес

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

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

Відповіді:


6

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

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


5

Ви можете поглянути на жирафа, який нещодавно був у новинах:

https://thestack.com/iot/2015/09/14/neural-network-chess-computer-abandons-brute-force-for-selective-human-approach/

Обман полягає в тому, що за 3 дні він навчив себе грі і досяг рівня чату. З іншого боку, це дослідження

http://arxiv.org/abs/1509.01549


Не зовсім вірно ... Дивіться мою відповідь.
SmallChess

3

Я хотів би додати деталі до відповіді @ Ian_Bush про Giraffe.

У відповіді @ Ian_Bush зазначається, що Giraffe не використовує обчислення грубої сили. Це неправильно , адже Giraffe все ще є двигуном альфа-бета (nega-max). Тільки різниця зі стандартним двигуном є те , що функція оцінки налаштовується автоматично при глибокому навчанні. Тому двигун вчиться грати сам.

Традиційно програміст двигуна самостійно налаштовує параметри в двигуні. Я багато зробив сам. Наприклад, скільки ваги слід надати єпископу та лицарю? 3,0? 3.1? 3,2? Важко сказати.

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

EDIT : Giraffe моделює вузли дерев як ймовірність того, що вони потрапляють до основної зміни. Перевірте деталі на папері. Я особисто не вірю в такий підхід, і документ показує мало доказів, наскільки це було б корисно.


Чи правда, що жирафа використовує Stockfish eval в якості мішені? Якщо так, то він не «вивчає шахи» сам по собі, він просто вчиться наближенню до Stockfish eval, використовуючи мережу на верхній частині дошки.
Фернандо

@Fernando Giraffe не має нічого спільного з Stockfish, я вважаю.
SmallChess

Я прочитаю весь документ, але на сторінці 18 написано: We evaluated board representations by training neural networks to predict the output of Stock- fish’s evaluation function in a supervised fashion, given 5 million positions as input, in the board representation under evaluation. Отже, це не навчання самозайманням ІМО.
Фернандо

1

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

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

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


0

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

Двигуни, які були створені в 1970-х роках (наприклад, Hitech, Kaissa), як правило, були чистою грубою силою без обрізки або просто альфа-бета, але люди незабаром побачили значення обрізки дерева рухів і ліній, які навряд чи виявляться сильними . Практично всі останні двигуни обрізають дерево ліній, які явно слабкіші (альфа-бета), і більшість двигунів використовують також різні типи обрізки вперед (марність, скорочення пізнього руху, нульовий хід, зривання). У цьому сенсі вже не так багато двигунів, які вже використовують чисту грубу силу.

У 1970-х роках Ботвінник працював над двигуном під назвою "Піонер", задуманим навколо поняття шляхів атаки, яке було б орієнтоване на оцінку. Він ніколи не доходив до того, коли міг би грати в повну гру в шахи.

У 1990-х Кріс Віттінгтон висловився на користь використання більше шахових знань і створив програму під назвою Шахова система Тал, яка була досить сильною для свого часу.

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


-2

В основному всі вони!

Шахові двигуни дійсно застосовують грубу силу лише тоді, коли:

  • сказав
  • аналізують позиції (вирішення проблеми)
  • Шукаєте мат-матеру (вирішення проблем, а не грати проти, як-от "знайти пару в стилі N")

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

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

Це також буде грубою силою, коли вибірковий пошук не дуже корисний. Ось чому двигуни займають більше часу, коли у них залишилось 3 штуки. Вони повинні жорстоко застосовувати, оскільки алгоритм вибору не може оцінити рух. Алгоритм вибору чудовий під час ігрової майстерності, тому що він може бути схожим на "О, так, це робить пішак, блокує його [що завгодно] і створює резервні копії [що б там не було] і [все], що я маю меншу кількість захищаючу, ніж атакуючу" - наприклад .

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

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

Тоді двигун робить те саме з вашої точки зору, і назад, і назад, і назад.

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

БЕЗПЕЧНО (вибірково :)) він потрапляє туди іншим способом, або хоче вивчити далі. Припустимо, наприклад, що виявляється, що ваш ... грак має важливе значення для атаки, що насувається, двигун може переоцінити лінію, коли виявить це. Попередня вага, яку він наділив на цей лад (наприклад, 5 балів, наскільки це важливо для вас), може бути недооціненою.

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

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

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

Зверта сила зі стартової позиції може виявити того знаменитого товариша-в-4, який включає королеву f7, яку охоплює єпископ, і якби це оцінило дуже високо (я знайшов перевірку! РОБОТА Зроблена! ГРУЙТЕ!) Це Буду помилятися, оскільки чорний очевидно протидіє. Вибірковий пошук оцінює позицію (для подальшої оцінки), оскільки, здається, це добре. Це означає, що коли він розглядає вашу відповідь, він може вирішити, що було б добре для вас ....

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

Звідси, які перші кроки (білі) обрали шахові двигуни?

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