Главная › Форумы › Шашечные программы › Шашечные программы › Турнир среди шашечных программ
- В этой теме 567 ответов, 20 участников, последнее обновление 16 лет, 9 месяцев назад сделано NS.
-
АвторСообщения
-
11.09.2006 в 05:54 #361877NSУчастник
У алгоритма есть небольшой побочный эффект — отдает лишний материал, который не нужен для достижения победы….
11.09.2006 в 06:17 #361878KallistoУчастникЭто эффект любого алгоритма использования ЭБ. Или ты знаешь алгоритмы без этого эффекта?
Хуже тот эффект, что проигранные позиции совсем не защищает. В этаких позах прога впадает в полную апатию.
11.09.2006 в 06:21 #361879NSУчастникВ проигранных и ничейных позициях нужен немного другой алгоритм, Я до вечера еще подумаю, и выложу что надумал…
//
Насчет выигранных — даже если не прерывать перебор на взятиях совершенных противником (а прерывать только на своих) — эффект не исчезает — начинает отдавать простые (и при этом выигрывающее продвижение ищется дольше) . Но в выигранных наверно от него (побочного эффекта) нет смысла избавляться — главная цель ведь выиграть, а эта цель достигается.11.09.2006 в 06:30 #361880KallistoУчастникМежду прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.
11.09.2006 в 06:47 #361881MiGУчастникМежду прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.
:
Игорь, то что Вы не играете в шашки, я знаю давно. Но мне казалось что Вы шахматист… 🙄
11.09.2006 в 07:08 #361882NSУчастникЧтоб писать программы в настольные игры — абсолютно необязательно самому хорошо в них играть
Алгоритм, для Ничейных и проигранных позиций (когда уже «сидим» в ЭБ) имеет небольшие отличия —
Убираем отсечения на ходе простой и взятиях.
Просто за обе стороны смотрим только ходы в пределах текущей оценки в ЭБ, цель одна — максимизация оценки…
То есть если оценка по ЭБ ничейная, то за обе стороны смотрим только ходы, после которых оценка по ЭБ ничья (остальные не рассматриваем)
В случае проигранной позиции за нас смотрим все ходы, за соперника только выигрывающие, в случае возможности хода простой/взятия перебор не прерываем.
//
Остается случай, когда проигрывающая/ничейная оценка из ЭБ достигается в переборе, причем корневой позиции в ЭБ нет…11.09.2006 в 07:26 #361883KallistoУчастникМежду прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.
:
Игорь, то что Вы не играете в шашки, я знаю давно. Но мне казалось что Вы шахматист… 🙄
Меня учили, что играть в проигранной позиции неприлично. Разве если только в блиц.
11.09.2006 в 07:28 #361884KallistoУчастникОстается случай, когда проигрывающая/ничейная оценка из ЭБ достигается в переборе, причем корневой позиции в ЭБ нет…
Это и есть самый важный случай.
11.09.2006 в 07:29 #361885NSУчастникЕсли корневая позиция не в ЭБ, то в случае достижения позиции из ЭБ — в случае выигранной позиции прибавляем к оценке Выигрывающий бонус, в случае проигрынной вычитаем, в случае ничьи — делим оценку (например на 100)
Чтоб убрать нестабильность оценки — после достижения позиции из ЭБ рассматриваем все взятия и превращения в дамку.
//
Ввиду того что данный алгоритм замедляет перебор, можно запускать его из корня только после того, как текущая оценка (в корне) станет выигранной (Хотя в таком случае нет смысла дергаться ), проигранной либо нулевой.добавлено
С оценками в Хеше нужно еще разобраться…11.09.2006 в 17:43 #361886Kvadrat64УчастникКаллисто выигрывает этот сложнейший эндшпиль!
Игорь, теперь надо научить программу сопротивляться сильнейшим образом, пусть даже и в проигранной позиции11.09.2006 в 18:17 #361887NSУчастникНичейные позиции лучше рассмотреть потом.
В случае если досчитались до проигрыша по ЭБ, неважно находимся в ЭБ или нет — алгоритм одинаковый… За нас смотрим все ходы, за соперника только выигрывающие (если уже достигли в переборе ЭБ), и с этими условиями максимизируем оценку нашу оценку (не по ЭБ, а обыкновенную статистическую оценку)…
Только предварительно насильно очищаем Хеш. (оценки)11.09.2006 в 18:18 #361888KallistoУчастникИгорь, теперь надо научить программу сопротивляться сильнейшим образом, пусть даже и в проигранной позиции
Не буду этого делать из этических соображений. Нужно уметь признавать свои поражения!
Лучше пытаться усиливать игровые алгоритмы, чтобы не попадала в проигрышные позиции.11.09.2006 в 18:22 #361889KallistoУчастники с этими условиями максимизируем оценку нашу оценку (не по ЭБ, а обыкновенную статистическую оценку)…
Может получиться так что ничейный ход будет оценен -5, т.к. не дошли до ЭБ. А проигрывающий -4, т.к. вместо оценки по ЭБ (до которой досчитали) вернули значение ОФ.
И сделаем проигрывающий ход.
11.09.2006 в 18:25 #361890NSУчастникОткуда у нас взялся ничейный ход, если мы уже досчитались до того, что все ходы в позиции (корень дерева) проиграны по ЭБ?
В таком случае, так как у нас ЭБ безранговая программа сделает первый попавшийся ход… Что всяко хуже, чем попытка усложнить сопернику жизнь…12.09.2006 в 15:51 #361891Kvadrat64Участник«Kallisto wrote:Не буду этого делать из этических соображений. Нужно уметь признавать свои поражения!
Лучше пытаться усиливать игровые алгоритмы, чтобы не попадала в проигрышные позиции.Эта позиция тоже имеет право на существование, ну, хотя бы для приличия, чтобы совсем уж просто не отдавала шашки, может в таком случае отключить ЭБ и играть по ОФ?
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.