Internal Iterative Deepening

Discussion in 'Машинное отделение' started by WildCat, 24 Oct 2006.

  1. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Подфиксил все свои баги с IID, но даже если иногда теперь и быстрее считает, то не намного.

    NS!
    Поделись с народом самыми современными идеями IID (пециально для этого сделал ветку).
  2. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Админы!
    Название темы должно быть IID. Ваш злостный софт половину букв попортил :(
  3. Binary Учаcтник

    • Участник
    Member Since:
    27.08.2006
    Message Count:
    135
    Likes Received:
    0
    Репутация:
    0
    Location:
    Мытищи
    Оффлайн
    в моем оригинальном способе :D я вытаскивал на вершину не 1 ход ,а все до достижения value >= beta
    с присваиванием им приоритета , согласно полученным оценкам - глядишь что-то изобрел :lol:
    может действительно вытаскивание неск. ходов будет лучше вытаск. одного , как с киллерами?!
  4. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Сейчас, мысли в порядок приведу :)
  5. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.492
    Likes Received:
    3.122
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Название темы должно быть расшифровкой этой аббревиатуры :)
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    if (bestM=0) then // Если нет хода в хеше
    Begin
    if PV Then // PV ветвь
    Begin
    if (depth>2) then
    Begin
    // Вычислим новую глубину
    // if depth<4 then newdepth:=depth-2 else
    newdepth:=(depth div 2);
    oc1:=perebor(a,b,true,false,newdepth);
    // Третий параметр признак PV ветви, четвертый - запрет NullMove на входе
    if (oc1<=a) Then oc1:=perebor(-inf,b,true,false,newdepth);
    end;
    end
    Else // Не PV ветвь
    Begin
    if (depth>3) then
    Begin
    // Вычислим новую глубину
    //if depth<4 then newdepth:=depth-3 else
    newdepth:=(depth div 3);
    oc1:=perebor(a,b,false,false,newdepth);
    // Третий параметр признак НЕ PV ветви, четвертый - запрет NullMove на входе
    // Запуск происходит с нулевым окном (в случае NegaScout)
    if (oc1<=a)and(Depth>5) Then oc1:=perebor(-inf,b,true,false,newdepth);
    // Третий параметр признак PV ветви, четвертый - запрет NullMove на входе
    // возможно что в этом случае newDepth нужно посчитать по-другому
    end;
    end;
    end;
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Понятно, что генерация Ходов в рекурсивном вызове IID должна производится ТОЛЬКО один раз.
    (например в стеке хранится признак того, что ходы сгенерированы, а если уже сгенерированы - то и отсортированный список ходов - соответственно генерация производится только при последнем рекурсивном вызове IID (с минимальным depth), а вышестоящие уровни рекурсии уже используют отсортированный список ходов, с возможно вытянутыми наверх опровергающими и лучшими ходами)
    При этом ходы должны быть отсортированы (тоже один раз), и каждый раз когда оценка>Альфа ( и Оценка>BestValue)
    Ход вытягивается наверх, а каждый раз когда оценка хода >=Бета (Таких ходов может быть несколько!!! На каждом рекурсивном вызове это могут быть разные ходы) Ходу дополнительно еще присваивается признак Опровергающего (например для LMR)
  8. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    На русском форуме английское название темы выглядит не очень хорошо. IID лучше, т.к. это общепринятая аббревиатура. Не лучше ли было пофиксить баг форумного софта?
  9. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Совершенно не имеет никакого значения. Проигрыш в скорости будет измряться сотыми долями процента, если не меньше.
    Идея с делением depth мне кажется не очень удачной. Получаем ход не очень хорошего качества и при этом никакой экономии. На вспомогательный перебор depth - 3 * ONE_PLY практически никаких ресурсов не затрачивается (относительно размера основного дерева перебора). Экономить на этом не имеет никакого смысла.
  10. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Как это экономить не имеет смысла, если при такой схеме (Вычитание вместо деления) НА ВСЕХ тестовых позициях получается больше узлов (при расчете на ту-же глубину)
    При вычитании Только в PV ветвях - разница не очень велика, а в НЕ PV ветвях - уже достаточно серьезна.

    Генерация ходов производится один раз - не для экономии времени на генерации, а для использования информации о сортировке ходов (в IID из-за рекурсивности метода, и возможного ненулевого окна - мы имеем более одного хорошего хода, подлежащего вытаскиванию наверх), и для сбора информации об опровергающих ходах (Для того чтоб в схеме LMR не делать на них сокращение)
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Для вытаскивания хода наверх - в Search, в основном теле - вот такой код
    if oc>a then
    begin
    a:=oc;
    u:=r.hhod;
    for k:=i downto 2 do
    r.hhod[k]:=r.hhod[k-1];
    r.hhod[1]:=u;
    if oc>=b then // завершаем перебор, и производим манипуляции с хешем
    end;
  12. WinPooh В.М.

    • Команда форума
    Member Since:
    13.02.2006
    Message Count:
    9.492
    Likes Received:
    3.122
    Репутация:
    95
    Location:
    Москва
    Оффлайн
    Это вопрос не ко мне. Я к форумному софту доступа не имею :)
  13. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    У меня с включенным перебором IID с вычитанием, но не никак использующим результаты этого IID, размер дерева почти всегда тот же. Так что не вижу причин, по каким нужно делить. Сокращая глубину IID ничего не получим, т.к. этот метод достается практически бесплатно.
  14. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Не знаю насколько такой подход помогает сортировать. Если хочется посортировать ходы, то мне больше нравится вариант Binary. Например так: ищем первый ход по IID, перебираем его на полную глубину, если он оказался неопровергающим, то остальные ходы оцениваем по ФВ.
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Дело в том, что сортировка по ФВ занимает время. И ход, лучший при сортировке по ФВ - не настолько хорош чем ход лучший при Depth=2 и лучший ход по ФВ - не тоже самое для LMR, что и опровергающий при depth=5,10,15...
    И у меня - вообще нет трат времени по сравнению с обычной схемой IID
    То есть абсолютно стандартный IID, только лучше усваиваем полученную информацию.

    И используем IID не только в PV ветвях, а во всех - только не в PV ветвях используем более гибко - по другом считаем NewDepth, и первый проход при Depth>3, а второй с расширенным окном (в случае если первый проход не дал опровергающего хода) - только при Depth>5.

    Я говорю же не о том, занимает ли сам IID время, а о размере полного дерева. Если мы выигрываем в размере - то причем тут траты времени от вызова IID?

    Если IID совсем не увеличивает дерево (при холостом запуске) - то не значит ли это что IID нужно использовать еще более Агрессивно?
  16. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Тем более сравнить вычитание с делением занимает всего пять минут.
    Поставили начальную позицию, очистили хеш, и запустили на 2 минуты расчет.
  17. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Сортировка по ФВ при depth >= 4 вообще не может занять времени.
    Дело в том, что мы говорим не о лучшем ходе, а о сортировке всех последующих. Как их отсортирует твой IID это дело случая. Сортировка по ФВ всегда стабильна и достаточно качественна (мне даже не очевидно, что IID сможет отсортировать лучше ходы начиная с 2-ого и дальше).
  18. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Вычитание более агрессивно и при этом дерево не увеличивается. Зачем проверять деление?
    Кроме того, у меня из-за такого подхода уже были проблемы. Сортировал ходы так, чтобы лучше было на 1-3 тестовых позициях. Это приводило к худшим результатам, чем если проверять на реальных партиях.
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Я не знаю методики определения разницы в силе двух версий программы при контроле 2 минуты на ход...
    1000 партий? Определяем разницу в 20 пунктов? Всего лишь 320 000 минут времени...
    Но я знаю методику определения разницы количества узлов в дереве на 100-1000 тестовых позиций (при заданной глубине, и среднем времени обдумывания 2 минуты на ход) :)

    А насчет разницы эффективности алгоритмов получения оценки для всех узлов, и последующей сортировки, и IID - получение одного лучшего/опровергающего хода, а если повезет, то и нескольких, отсортированных...
    Всего лишь глубина Depth-3 Для одного хода... Либо равносильная трата времени при Depth-8 Для всех ходов... Я считаю что один лучший ход с глубиной depth-3 намного важнее, чем сортировка всех, но точность сортировки определяется глубиной depth-8///
  20. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Суть сортировки при альфаБетте не в том чтоб улучшить упорядоченность ходов (в узлах с окном нулевой ширины и отсутсвии опровергающего хода по Бетте - сортировка не дает ничего - всё равно все ходы будут рассмотренны), а именно в том, чтоб опровергающие ходы если они есть - были рассмотренны в первую очередь... Именно это уменьшает дерево перебора.
    IID избирательно ищет именно такие ходы... А один ход будет вытянут. или повезет и два три - неважно.
    Если 2-3 то будем считать что нам просто повезло, и используем полученную информацию (в отличии от стандартной схемы, которая эти два-три хода получает, но никак не использует, и оставляет их в конце списка, либо в том месте, где они и находились)
  21. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Кстати, насчет того что холостой, рекурсивный запуск в любой ветви (есно при остутствии отсечения пустым ходом и хода в Хеше) IID с Depth-3 При времени на ход 2 минуты практически не увеличивает количества узлов в дереве...
    Я таких тестов не проводил, НО
    Запуск Верификации пустого хода с Depth-5, по сравнению с Depth-7 (при этом есно ВСЕГДА НУЛЕВОЕ ОКНО на верификации) - уже Кардинально увеличивает размер дерева.
    При этом такие Тесты проводил не только я!
    Весьма странно :)
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Всё, понял!!!
    Игорь, у тебя ошибка в рассуждениях!!!!

    Твой "холостой" запуск IID - на самом деле никакой не холостой!!!

    Опровергающие ходы, полученные при помощи IID - используются!!!
    Влияние холостого запуска на историю минимально, но этот "холостой" запуск явно влияет на киллеры.
    Поэтому вполне возможно, что при более гибком подходе к вычислению newdepth - у тебя при холостом запуске IID будет уменьшение количества узлов в дереве!
  23. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Все современные методы сортировки ходов не связаны с оценками...
    Например
    Киллеры - опровергающие ходы (а не ходы с хорошими оценками)
    Сортировка по истории (сортировка по истории опровергающих ходов)
    SEE - вытягивание вверх перспективных взятий (с большой вероятностью опровергающих)
    Ходы из Хеша (опровергающие ходы)
    IID (c нулевым окном) чистый поиск одного опровергающего хода - если не нашли, то и не надо, по оценке не сортируем.

    Сортируя ходы по оценке ты подменяешь цель. Если нет других методов сортировки, то сортировка всех ходов по оценке, по ФВ, по сокращенной глубине конечно будет работать. а иначе - нет.

    Ежели у тебя вытаскивание ходов наверх абсолютно бесплатное (например у меня так сделано в IID - абсолютно не замедляет стандартную схему, и ходы по-максимуму вытягиваются наверх (причем опровергающие при большем depth - будут выше в списке, чем опровергающие при меньшем depth), или в Хеше - у меня хранятся два опровергающих хода отсортированных по глубине на которой они являются опровергающими) - то конечно от такой схемы могут быть только плюсы (по собранной мной статистике, если первый ход из хеша не был опровергающим, в хеше два хода, и в позиции есть хоть один опровергающий ход - он практически в 100% случаев будет именно этим вторым ходом из хеша),
    а если у тебя сделана сортировка всех ходов по оценке, либо по оценке полученной запуском ФВ (что по сути одно и тоже, просто получаем более точную оценку) - то такой метод будет конфликтовать с остальными, и только ухудшать эффективность отсечений при Альфа-бете.
  24. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    IID ищет лишь один опровергающий ход. Остальные ходы всего лишь попадают в альфу.
    А если ты используешь PVS, то ненулевых окон в переборе практически нет. И любой ход больше альфы сразу же завершит твой IID. Так что я все равно не вижу особых преимуществ у твоего метода.
    А идея оценки по ФВ не в том, чтобы сортировать ходы по ОФ. А в том, чтобы сначала рассматривать тактически выгодные ходы. А проигрывающие ходы потом.
  25. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Опровергающий ход завершает только один из нескольких селективных вызовов IID в цепочке...


    допустим хода в хеше нет...
    Абсолютно стандартная схема IID newdepth=depth-3
    Глубина 20 - в рамках IID - Вызов Search с глубиной 17, затем в любом случае перебор с глубиной 20, найденный (один) ход всего-лишь вытягивается наверх в списке...
    17 - Вызов Search с глубиной 14, затем в любом случае перебор с глубиной 17, найденный (один) ход всего-лишь вытягивается наверх в списке...
    14 - Вызов Search с глубиной 11, затем в любом случае перебор с глубиной 14, найденный ход всего-лишь вытягивается наверх в списке...

    ...
    В рамках одного вызова IID - рекурсивно запускается 6 вызовов IID с разным Depth
    С глубиной 2,5,8,11,14,17... И каждый вернет одинаковый опровергающий ход?
    То есть первый-же опровергающий ход, найденный с глубиной 2 - всегда Будет опровергающим (при данном окне)? Независимо от Depth?
    ...

    Второй вызов IID - с окном (-inf,beta) - каждый раз лучший ход будет рассмотрен именно первым, и именно он и будет опровергающим?
    ....
    В том то и дело, что IID Селективный метод, и поэтому он находит даже с нулевым окном - абсолютно не обязательно только один опровергающий ход.
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Вообще странный спор - я сейчас не могу запустить тесты (снес Делфи), но раннее результаты Тестов приводил.
    Второй ход из Хеша (первый так-ой же как и во стальных схемах, второй - это тот ход, который в стандартных схемах стирается первым) - вероятность того что второй ход из хеша опровергающий, если первый ход из Хеша не опровергающий, но в позиции был опровергающий ход - близка к 100% (значительно больше чем вероятность того что поровергающим является лучший ход по SEE, и намного больше чем вероятность того что опровергающим является киллер)
    Второй ход по силе (опровергающий с меньшим depth) полученный при помощи IID в таком же случае имеет такую-же вероятность быть опровергающим.

    Оба хода (второй по IID,и второй ход в хеше) - мы получаем абсолютно бесплатно по времени...
  27. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Почему ни у кого нет второго хода из хеша, если он такой хороший?
    Ладно, попробую в хеш сохранять два хода. У меня в самой первой реализации хеша было два оправергающих хода :) Но использовались они не очень адекватно.
  28. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Если есть опровергающий, то обычно более 90%, что им окажется первый рассматриваемый ход. Т.о. остальные ходы не могут дать особо большого эффекта.
  29. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Игорь, а кто тебе сказал что ни у кого нет второго хода в хеше? :)
    Может его нет только в открытых исходниках?
    Несколько лет назад я читал, уже не вспомню где - о двухуровневом Хеше (Это в хеш таблице про одному адресу две позиции - и вытесняемая, при записи нового хода выбирается исходя из формальных признаков - например с меньшим depth) Почему такого нет в открытых исходниках?
    Даже на простейших, нешахматных тестах - такой Хеш получает намного лучшее заполнение.
    Я читал о хранении ВСЕХ опровергающих ходов в хеше - если это позволяет быстродействие, и объемы оперативной памяти.
    В шахматах на 1С - как раз ситуация с малым быстродействием и большим объемом памяти. И несмотря на небольшую глубину перебора (ввиду низкого быстродействия) - второй ход в хеше дает уменьшение размеров дерева.

    И выгода от второго хода в хеше есть и в немного другом случае...
    Когда мы используем значения в хеше, оставшиеся от обдумывания предыдущего хода. Новые опровергающие ходы (с меньшей глубиной) - либо вытеснят хороший опровергающий ход (в схеме "вытеснять всегда"), либо будут утеряны (в схеме сохранения в хеше опровергающего хода с большим depth)

    И кстати - в открытых исходниках не было хранения больше чем одной оценки в хеше...
    Но ведь появилась!!! И никто теперь не отрицает эффективность этого метода.
  30. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Да, больше...
    А метод пустого хода сокращает вообще только 5% ветвей :)
    Но при этом улучшает Бренчинг Фактор с семи до трех :)

    И так-же можно сказать о ненужности сортировки ходов в случае наличия хода в хеше - ведь он и так дает вероятность опровержения больше 90% :)
  31. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Как я уже говорил, я никогда не повторяюсь! :D

    Хватит меня уговаривать, сказал же, что попробую :)
  32. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Потому что эффект каля наля.
  33. TopicStarter Overlay

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

    • Команда форума
    Member Since:
    04.05.2006
    Message Count:
    3.599
    Likes Received:
    4
    Репутация:
    0
    Location:
    Гомель
    Оффлайн
    Я слышал, что все кто пытался перейти на такую схему (как в Фрукте) никакого результата не получили.
  34. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    Угу, а Фрукт/Тога получают Результат :)
    Насчет двухуровнего Хеша - 99.9% что о нем писал Хьят, и применялся он не только в Крейблиц, но и в других программах. И я доверяю словам Хьтта о том что этот метод дает прибавку.
    ЗЫ. Я дошел до этого метода сам, когда переходил с бинарных деревьев на страничный механизм, потом прочитал мнение Хьятта об этом методе.
  35. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Member Since:
    02.05.2006
    Message Count:
    6.811
    Likes Received:
    96
    Репутация:
    3
    Location:
    Санкт-Петербург
    Оффлайн
    В открытых исходниках и нет смысла бороться за 5-15 пунктов Эло, даже если методы дающую такую прибавку пишутся за пол-часа и занимают десять строк кода.
    А в сильнейших - даже мучаются с продлением на движении проходной пешки, с откатом продления назад в некоторых случаях - это намного более трудоемко, дает всего 10 пунктов, и этого тоже нет в открытых исходниках.

    А если взять пять методов по 10 пунктов, написать их и отладить за сутки - то получим прибавку уже 50 пунктов. Например для WildCat-а это очень существенно. И такие рюшечки могут позволить догнать по силе Смартсинк.

Share This Page