2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 19:36 


05/09/12
2587
Думал, куда поместить тему - сюда или в программирование, решил сюда, ибо задачу можно рассматривать в отрыве от собственно программирования, и здесь больше людей могут заинтересоваться и подсказать. Итак, детская игра крестики-нолики 3*3. Хочется формализовать оптимальную стратегию (выбор хода при любом состоянии поля на входе), при этом чтобы она была по возможности наименее громоздкая. Пока придумал кустарщину вроде:
1) если можем закончить победой (есть 2 моих символа в каком-то ряду и третий свободный) - заканчиваем, иначе
2) если соперник может закончить - не даем ему это (занимаем клетку), иначе
3) если можем поставить "вилку" 2*2 - ставим, иначе
4) если соперник может поставить такую вилку - мешаем, иначе
5) если не занят центр - занимаем, иначе
6) если не занят угол - занимаем.
У меня сомнения в переходе к пунктам 5 и 6, да и вообще, весь алгоритм не производит впечатление стройного и аккуратного. Что посоветуете?

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 19:38 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Первым ходом центр занимать невыгодно.
http://xkcd.com/832/

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 19:54 


05/09/12
2587
Пытаюсь разобраться в Вашей ссылке. А насчет первого хода - я как-то настолько считал этот вопрос очевидным, что даже не задумывался глубоко. Плюс, другая кустарная стратегия - максимизировать разность количества потенциально закрываемых направлений моих и соперника предлагает первым ходом центр, как дающий 4 направления мне и 0 сопернику. Но подозреваю, что эта кустарщина тоже неоптимальна...

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:00 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
_Ivana, зачем кустарщина, если оптимальная стратегия давно известна. Помнится, у Гарднера о ней читал.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:10 


05/09/12
2587
Aritaborian, да думал вопрос простой - сам за 10 минут придумаю, а не получилось. Я подозревал, что уже все придумано, но мне кажется что в таком малом диапазоне, как 3*3, можно реализовать функционал оптимальной стратегии простыми и лаконичными средствами.

(Оффтоп)

книжка Гарднера "Математические головоломки" была в детстве и юности на полке, тогда не открывал, а теперь придется искать в инете...

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:13 
Заслуженный участник
Аватара пользователя


15/10/08
12500
Алгоритмъ:
1) Перебрать все варианты и составить граф непроигрышных ходов (занятие на вечер).
2) Играть поглядывая в результат пункта 1.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:17 


15/05/12

359
я тоже думал на эту тему...как-то доказывал с помощью принципа Дирихле, какие могут существовать конфигурации. Например, доказывал, что в обычных «X-O» при ничье обязательно будет по паре соседних знаков (и «X», и «O»)-если считать, что заполняются все 9 клеток.
Если смогу и заинтересует, дам ссылку.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:19 


05/09/12
2587
Утундрий, то есть, Вы предлагаете считать соперника максимально умным и не надеяться на выигрыш (независимо от того, кто начал ходить), а считать за счастье свести игру вничью, даже упуская при этом возможные подаренные соперником гарантированные выигрыши?
В таком случае проще запомнить таблицу исходных позиций (благо есть осевая симметрия) и наилучших ходов при них? Может для поля 3*3 это и будет оптимальным способом написания программы?

Nikolai Moskvitin давайте, почитаю.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:21 
Заслуженный участник


12/08/10
1677
Xaositect в сообщении #707848 писал(а):
Первым ходом центр занимать невыгодно.
http://xkcd.com/832/


Я правильно понял таблицу? У них при правильной игре ничья?

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:28 
Заслуженный участник
Аватара пользователя


15/10/08
12500
_Ivana в сообщении #707881 писал(а):
считать соперника максимально умным и не надеяться на выигрыш (независимо от того, кто начал ходить), а считать за счастье свести игру вничью

Конечно.
_Ivana в сообщении #707881 писал(а):
даже упуская при этом возможные подаренные соперником гарантированные выигрыши?

А вот этого не требуется. Как только ход противника выведет его за пределы нашей диаграммки, это однозначный сигнал к добиванию.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:32 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Null в сообщении #707882 писал(а):
Я правильно понял таблицу? У них при правильной игре ничья?
При правильной игре ничья, да.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:33 


05/09/12
2587
Кажется начинаю понимать. То есть, если мы хором идем к ничьей по моему графу, то и идти по нему, а если соперник делает ход вне графа - тогда добивать. Но вообще-то надо ещё грамотно добить - например, догадаться и суметь поставить вилку 2*2, если после моего первого хода в центр соперник сходил не в угол. А для правильных стратегий добития тоже нужен свой граф или алгоритм.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 20:58 
Заслуженный участник


27/04/09
28128
А что за вилка $2\times2$? Мне часто попадались вилки из двух углов одной стороны и центра, на $2\times2$ не похоже.

_Ivana в сообщении #707891 писал(а):
То есть, если мы хором идем к ничьей по моему графу, то и идти по нему, а если соперник делает ход вне графа - тогда добивать. Но вообще-то надо ещё грамотно добить
Весь граф игры не такой уж и большой, чтобы иметь его с собой. Тогда всегда ясно, как ходить.

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 21:02 


05/09/12
2587
arseniiv, это просто моя наколенная терминология. Например, я играю крестиками, вы ноликами:
я - центр
вы - нижняя середина
я - нижний левый угол
вы - верхний правый угол (иначе я выиграю следующим ходом)
я - левая середина (получаем вилку 2*2 - по 2 незакрытых крестика в 2 направлениях)

ЗЫ наверное вы правы, проще забить вручную весь граф игры... или мою таблицу ходов по исходным позициям с учетом симметрии... А саму таблицу или граф рассчитать для алгоритма вручную. Но я хотел чтобы компьютер не "втупую" играл по карте, а "думал по стратегии", мне это надо в целях демонстрации и обучения сына :-) (Я вообще задал ему написать генератор ходов, сказав что я в свою очередь напишу свой и мы потом запустим 1000 игр между ними :-) А потом мы внедрим в них управляемый процент глупости - уровень сложности игрока)

 Профиль  
                  
 
 Re: Крестики-нолики: оптимальная стратегия
Сообщение09.04.2013, 21:26 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Я, возможно, туплю и думаю не в ту сторону, но ведь существует же — и давно — оптимальная стратегия для этой игры. Она даже описывается какой-то просто запоминающейся мнемоникой. К сожалению, не помню, где об этом читал. Пролистал книгу Гарднера «Крестики-нолики», гл. 9, но там об этом ничего нет. Значит, в другой его книге...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group