Турнир среди шашечных программ

Главная Форумы Шашечные программы Шашечные программы Турнир среди шашечных программ

Просмотр 15 сообщений - с 271 по 285 (из 568 всего)
  • Автор
    Сообщения
  • #361877
    NS
    Участник

    У алгоритма есть небольшой побочный эффект — отдает лишний материал, который не нужен для достижения победы….

    #361878
    Kallisto
    Участник

    Это эффект любого алгоритма использования ЭБ. Или ты знаешь алгоритмы без этого эффекта?

    Хуже тот эффект, что проигранные позиции совсем не защищает. В этаких позах прога впадает в полную апатию.

    #361879
    NS
    Участник

    В проигранных и ничейных позициях нужен немного другой алгоритм, Я до вечера еще подумаю, и выложу что надумал…
    //
    Насчет выигранных — даже если не прерывать перебор на взятиях совершенных противником (а прерывать только на своих) — эффект не исчезает — начинает отдавать простые (и при этом выигрывающее продвижение ищется дольше) . Но в выигранных наверно от него (побочного эффекта) нет смысла избавляться — главная цель ведь выиграть, а эта цель достигается.

    #361880
    Kallisto
    Участник

    Между прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.

    #361881
    MiG
    Участник

    Между прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.

    :?:

    Игорь, то что Вы не играете в шашки, я знаю давно. Но мне казалось что Вы шахматист… 🙄

    #361882
    NS
    Участник

    Чтоб писать программы в настольные игры — абсолютно необязательно самому хорошо в них играть :)

    Алгоритм, для Ничейных и проигранных позиций (когда уже «сидим» в ЭБ) имеет небольшие отличия —
    Убираем отсечения на ходе простой и взятиях.
    Просто за обе стороны смотрим только ходы в пределах текущей оценки в ЭБ, цель одна — максимизация оценки…
    То есть если оценка по ЭБ ничейная, то за обе стороны смотрим только ходы, после которых оценка по ЭБ ничья (остальные не рассматриваем)
    В случае проигранной позиции за нас смотрим все ходы, за соперника только выигрывающие, в случае возможности хода простой/взятия перебор не прерываем.
    //
    Остается случай, когда проигрывающая/ничейная оценка из ЭБ достигается в переборе, причем корневой позиции в ЭБ нет…

    #361883
    Kallisto
    Участник

    Между прочим выкручиваться в проигранных позициях тоже не слишком красиво. Если уж получили проигранную позицию, то наш «0» вполне заслужен.

    :?:

    Игорь, то что Вы не играете в шашки, я знаю давно. Но мне казалось что Вы шахматист… 🙄

    Меня учили, что играть в проигранной позиции неприлично. Разве если только в блиц.

    #361884
    Kallisto
    Участник

    Остается случай, когда проигрывающая/ничейная оценка из ЭБ достигается в переборе, причем корневой позиции в ЭБ нет…

    Это и есть самый важный случай.

    #361885
    NS
    Участник

    Если корневая позиция не в ЭБ, то в случае достижения позиции из ЭБ — в случае выигранной позиции прибавляем к оценке Выигрывающий бонус, в случае проигрынной вычитаем, в случае ничьи — делим оценку (например на 100)

    Чтоб убрать нестабильность оценки — после достижения позиции из ЭБ рассматриваем все взятия и превращения в дамку.
    //
    Ввиду того что данный алгоритм замедляет перебор, можно запускать его из корня только после того, как текущая оценка (в корне) станет выигранной (Хотя в таком случае нет смысла дергаться :) ), проигранной либо нулевой.

    добавлено
    С оценками в Хеше нужно еще разобраться…

    #361886
    Kvadrat64
    Участник

    Каллисто выигрывает этот сложнейший эндшпиль!
    Игорь, теперь надо научить программу сопротивляться сильнейшим образом, пусть даже и в проигранной позиции :)

    #361887
    NS
    Участник

    Ничейные позиции лучше рассмотреть потом.
    В случае если досчитались до проигрыша по ЭБ, неважно находимся в ЭБ или нет — алгоритм одинаковый… За нас смотрим все ходы, за соперника только выигрывающие (если уже достигли в переборе ЭБ), и с этими условиями максимизируем оценку нашу оценку (не по ЭБ, а обыкновенную статистическую оценку)…
    Только предварительно насильно очищаем Хеш. (оценки)

    #361888
    Kallisto
    Участник

    Игорь, теперь надо научить программу сопротивляться сильнейшим образом, пусть даже и в проигранной позиции :)

    Не буду этого делать из этических соображений. Нужно уметь признавать свои поражения!
    Лучше пытаться усиливать игровые алгоритмы, чтобы не попадала в проигрышные позиции.

    #361889
    Kallisto
    Участник

    и с этими условиями максимизируем оценку нашу оценку (не по ЭБ, а обыкновенную статистическую оценку)…

    Может получиться так что ничейный ход будет оценен -5, т.к. не дошли до ЭБ. А проигрывающий -4, т.к. вместо оценки по ЭБ (до которой досчитали) вернули значение ОФ.

    И сделаем проигрывающий ход.

    #361890
    NS
    Участник

    Откуда у нас взялся ничейный ход, если мы уже досчитались до того, что все ходы в позиции (корень дерева) проиграны по ЭБ?
    В таком случае, так как у нас ЭБ безранговая программа сделает первый попавшийся ход… Что всяко хуже, чем попытка усложнить сопернику жизнь…

    #361891
    Kvadrat64
    Участник
    «Kallisto wrote:
    Не буду этого делать из этических соображений. Нужно уметь признавать свои поражения!
    Лучше пытаться усиливать игровые алгоритмы, чтобы не попадала в проигрышные позиции.

    Эта позиция тоже имеет право на существование, ну, хотя бы для приличия, чтобы совсем уж просто не отдавала шашки, может в таком случае отключить ЭБ и играть по ОФ?

Просмотр 15 сообщений - с 271 по 285 (из 568 всего)
  • Для ответа в этой теме необходимо авторизоваться.