Хитрый расчет времени на обдумывание у Шреддера 11

Discussion in 'Машинное отделение' started by NS, 5 Nov 2007.

  1. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    При включенном дебютно-миттельшпильном самобуче Шреддер хитро принимает решении о необходимости прервать обдумывание хода.
    Например контроль времени 10 часов на партию + 10 минут на ход - Шреддер на обдумывание первого хода тратит всего пару минут.

    Я столнулся с эффектом, что с включенным сомобучем моя программа бесцельно тратит время - Быстро по захешированным оценкам добегает до глубины предыдушего обдумывания (по сохранненым в миттельшпильном самообуче оценкам), а потом безрезультативно тратит всё оставшееся время...
     
  2. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Это о чем?
     
  3. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    О миттельшпильном самообуче...
    В шашках у меня, допустим контроль час на партию.
    Продумала над первым ходом 10 минут, сосчитала на Depth=25, сохранила в качестве миительшпильного cамобуча оценки.
    При следующем запуске с таким-же (или более коротким) контролем быстрее чем за 100мс. просчитывает на Depth=25, а затем зависает на первом ходе при Depth=26, безрезультативно думает всё отведенное на ход время, и есно результат такой-же как и если-бы сразу сделала ход лучший при Depth=25...
     
  4. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    А чего именно сохранила-то?
     
  5. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Обыкновенный миттельшпильный самообуч - сохраняются оценки (и Depth при которых они получены) позиций в корне, и после первого сделанного хода (Depth>=Depth_в_Корне-1), так-же сохраняются два лучших хода - то есть полный аналог обыкновенного хеша, но сохраняются оценки только узлов близких к корню.
     
  6. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Какая от этого польза?
     
  7. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Как обычно... Если программа когда-то уже играла эту позицию, то уже знает хороший ход. Допустим играла с длинным контролем, сейчас играет с коротким контролем - сделает ход который надумала с длинным контролем. Если соперник нашел опровержение, и у программы упала оценка, то она досчитается до падения захешированной оценки и выберет другое продолжение...
    Допустим в прошлый раз сделала ход gf4, глубина была 25, захешировалась оценка до хода gf4 с глубиной 25, и оценка позиции после gf4 c глубиной 24.
    Соперник нашел опровержение (пусть ba5), после его хода мы увидели что позиция ухудшилась. Захешируется плохая оценка после gf4 ba5 с глубиной 25, спустится в позицию после gf4, и в следующий раз ход gf4 сделан не будет.

    И в любом случае сделает тот-же ход быстрее. (со временем я разобрался)
     
  8. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Это разве что для матчей может быть полезно.
     
  9. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Это не для матча полезно, это перед матчем полезно :)
    Я на основе самообуча буду делать дебютную.

    И в шашках всё-равно играются микроматчи, на второй подряд партии в той-же позиции программа будет уже чего-то знать. Даже тестеры заметили что Торнадо за счет миттельшпильного самообуча вторую партию подряд из той-же начальной позиции играет уже лучше...