On-line: guests 0. In total there are: 0 [information..]
AuthorTopic
Bison



Post №: 71
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 12:18. Post subject: IPPOLIT & ROBBOLITO


Предлагаю обсудить особенности устройства Ипполита. Все-таки некаждый день появляются сильнейшие opensource программы.

Say thanks!: 1 
Profile Reply
Replys - 251 , page: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [new only]


VP
VIP


Post №: 688
Joined: 15.07.07
Rank: 11
link post  Posted: 19.10.09 12:25. Post subject: Bison мы давно тебя ..


Bison мы давно тебя ждем здесь http://immortal223.borda.ru/?1-2-0-00000151-000-260-1

Say thanks!: 0 
Profile Reply
Bison



Post №: 72
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 12:26. Post subject: Первое впечатление о..


Первое впечатление от кода - очень трудно его разобрать. Не совсем корректные названия типичных переменных только усиливают это впечатление: below вместо alpha, above вместо beta - мелочи по-сравнению с murderer вместо killer. Штук 10 поисковых функций тоже никак не помогают читабельности.

Первое новшество, что я заметил - это IID

 quote:

 
// IID
if (!transpositional_movement && deepness >= 6) {
itog = below;
if (deepness >= 10) {
itog = white_pv (below - deepness, above + deepness, deepness - 8, shah);
if (itog > below - deepness)
transpositional_movement = (tower_structure + 1)->move;
}
if (itog > below - deepness)
itog = white_pv (below - deepness, above + deepness, deepness - 4, shah);
if (itog > below - deepness)
transpositional_movement = (tower_structure + 1)->move;
}
else if (deepness >= 10 && deepness > hash_deepness + 8) {
itog = white_pv (below - deepness, above + deepness, deepness - 8, shah);
if (itog > below - deepness)
transpositional_movement = (tower_structure + 1)->move;
if (itog > below - deepness) {
itog = white_pv (below - deepness, above + deepness, deepness - 4, shah);
if (itog > below - deepness)
transpositional_movement = (tower_structure + 1)->move;
}
}



из функции white_pv(). Окно зависит от глубины + функция охватывает очень большие глубины (deepness >= 10). Все это, очевидно, весьма кстати при нахождении тактики.

Say thanks!: 0 
Profile Reply
Bison



Post №: 73
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 12:29. Post subject: VP Я думаю, лучше т..


VP
Я думаю, лучше там особо не флудить, больно уж тема объемная.

Say thanks!: 0 
Profile Reply
VP
VIP


Post №: 689
Joined: 15.07.07
Rank: 11
link post  Posted: 19.10.09 12:34. Post subject: Bison согласен ..


Bison согласен


Say thanks!: 0 
Profile Reply
Bison



Post №: 74
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 12:36. Post subject: Немного погонял трет..


Немного погонял третью рыбу против Ипполита, пондерхит получается пока очень высокий (особенно если сравнивать со Stockfish.
 
Rybka 3 32-bit - IPPOLIT 0.080a 20.5 - 24.5 45.56%
Rybka 3 32-bit - Stockfish 1.5 JA 32.5 - 12.5 72.22%
53.0 - 37.0 58.89%

Пондерхит

 quote:
Rybka 3 32-bit - IPPOLIT 0.080a 74.57% (827/1109)


Для сравнения со Stockfish 1.5

 quote:
Rybka 3 32-bit - Stockfish 1.5 JA 52.56% (626/1191)




Say thanks!: 1 
Profile Reply
Bison



Post №: 75
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 12:41. Post subject: Программа для расчет..


Программа для расчета пондерхита.
Партии

Say thanks!: 3 
Profile Reply
Bison



Post №: 76
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 14:28. Post subject: Для глубокого поиска..


Для глубокого поиска Ипполит имеет на мой (весьма беглый) взгляд самый лучший из opensource движков Futility Pruning. Реализуется он, как я понял, через таблицу increment_maximal[16][4095], своим устройством напоминающую History. Стоит все это дело поизучать поподробнее.

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4545
Joined: 14.07.07
Rank: 25

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 19.10.09 14:55. Post subject: WildCat пишет: Для ..


WildCat пишет:

 quote:
Для разбора исходников Ипполита лучше создать отдельную ветку.


Так она уже создана :)
В это ветке их уже разбирают.

Say thanks!: 0 
Profile Reply
Bison



Post №: 77
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 15:54. Post subject: Ponder-а в Ипполите ..


Ponder-а в Ипполите точно нет, иначе была бы команда "ponderhit", без нее никуда.

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 19.10.09 21:50. Post subject: Некоторые сходства с..


Некоторые сходства с Рыбкой 3:

1. Большинство основных функций – парные: для позиций с ходом белых и – зеркальные – для позиций с ходом черных. Как и в Рыбке.
2. Очень похож расчет таблицы материального дисбаланса. Правда, в Рыбке это одна функция, но это не принципиально.
3. Белопольный и чернопольный слоны имеют разный индекс в таблице материала – тоже Рыбка.
4. В оценочной функции за одну операцию складываются два числа opening и endgame, типа так:
za -= (((3) << 16) + (10)). Это Рыбка.
5. Отдельный расчет оценки для пешечника.
6. Похожий принцип пересчета истории.
Ипполит:
int ist = ISTOR[POZ.pl[(((dv) >> 6) & 077)]][((dv) & 077)];
ISTOR[POZ.pl[(((dv) >> 6) & 077)]][((dv) & 077)] = ist + (((0xff00 - ist) * gl) >> 8);
Рыбка 3:
history = History[quiet_flag][piece][to];
History[quiet_flag][piece][to] = history - ((history * depth) >> 9);

В целом, можно считать Ипполит производным от Рыбки 3. Но отличий очень много, и они настолько существенны, что сделать это мог только тот, кто хорошо разбирается в алгоритмах Рыбки. Я уже год изучаю исходники Рыбки, но так радикально поменять её не смог. Скорее всего, это что-то близкое к Рыбке 4 от автора, но потом кто-то поиздевался над кодом.

И ещё кое-что интересное. В конце ОФ есть что-то жуткое:

if ((ookDIN->FLAG & 128))
{
if (za > 0)
{
if (POZ.dd[enBELsvet])
za -= .. а дальше – длинное многоэтажное матерное выражение из 4000 символов.

Не похоже, чтобы это писала человеческая рука. Рука была явно механическая. Похоже, здесь прошёлся какой-то мощный декомпилятор.
Кстати, в Рыбке 3 этой ерунды нет.


Say thanks!: 3 
Reply
immortal223
administrator


Post №: 2955
Joined: 14.07.07
Rank: 54
link post  Posted: 19.10.09 21:58. Post subject: Osipov Юрий больша..


Osipov

Юрий большая просьба - отладьте движок, а! только Вы можете это сделать
Я от него в полнейшем восторге. Он ненормально силён! Особенно в эндшпиле.
Мульти-ПВ привязать бы к нему для анализа это очень надо!!

Say thanks!: 1 
Profile Reply
Bison



Post №: 82
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 22:22. Post subject: Osipov Юрий, поиск ..


Osipov
Юрий, поиск сильно похож на тот, что в Рыбе? Там тоже гора переборных функций?
Я, например, до сих пор не докопался, что такого особенного делают функции white_all (), white_exclustion() и white_slide(), что их понадобилось выносить из общего поиска.

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 19.10.09 22:30. Post subject: Immortal223. Отладк..


Immortal223.

Отладка Ипполита и прикручивание Multi PV не заставят себя ждать. Есть много хороших программистов.

Ещё интересное наблюдение про Ипполита. Сравнил его скорость с оригинальной Рыбкой и "своей".
Мне удалось выжать только 40% прироста скорости по сравнению с оригинальной Рыбкой.
Но Ипполит на 100% быстрее Рыбки 3, т.е. вдвое.


Say thanks!: 2 
Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 19.10.09 22:36. Post subject: Юрий, поиск сильно п..



 quote:
Юрий, поиск сильно похож на тот, что в Рыбе? Там тоже гора переборных функций?
Я, например, до сих пор не докопался, что такого особенного делают функции white_all (), white_exclustion() и white_slide(), что их понадобилось выносить из общего поиска.



Я пока ещё не копался в поиске Ипполита. Только посмотрел PV-поиск. Тоже сложное впечатление, как и от всего остального - много похожего на Рыбку 3, но много и отличий.
Кстати, сколько функций поиска в Ипполите всего? В Рыбке их 20 - по 10 на white и black. Это не считая корня.


Say thanks!: 0 
Reply
Bison



Post №: 84
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 22:48. Post subject: Я насчитал 30 (сумма..


Я насчитал 30 (суммарно за оба цвета), это если считать с black_top () и дальше вниз. Как раз на месяц разбора, если в день по функции

Say thanks!: 0 
Profile Reply
Bison



Post №: 85
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 22:50. Post subject: Но Ипполит на 100% б..



 quote:
Но Ипполит на 100% быстрее Рыбки 3, т.е. вдвое.


Удвоение скорости, насколько я помню, дает ~70 пунктов Эло, так что в знаниях он не особо прибавил, правильно?

Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 2959
Joined: 14.07.07
Rank: 54
link post  Posted: 19.10.09 22:51. Post subject: Osipov пишет: Отлад..


Osipov пишет:

 quote:
Отладка Ипполита и прикручивание Multi PV не заставят себя ждать. Есть много хороших программистов.



Я просто в нереальном экстазе от этого движка. Это просто сказка какая-то!
не поверил бы что такое возможно.
Такое потрясение испытывал только в декабре 2005 когда рыбка 1.0 Бета появилась. И немного похожее - когда Рыбка 3 вышла!

Say thanks!: 1 
Profile Reply
Знатный Читер



Post №: 101
Joined: 18.06.08
Rank: 1
link post  Posted: 19.10.09 22:52. Post subject: Юрий Осипов, скажите..


Юрий Осипов,
скажите, пожалуйста, а что вы заканчивали? Очень хочется чувствовать себя так же свободно в программировании. В 2010 собираюсь поступить на заочку в Санкт-Петербургский Политехнический на информационные системы и технологии. На очку уже нет времени.

Say thanks!: 0 
Profile Reply
Bison



Post №: 86
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 23:05. Post subject: Как я и думал, Иппол..


Как я и думал, Ипполит уже все изучают (кому надо).

 quote:
mcostalba wrote:
Today, in the main forum, there has been a marathon thread about an (almost sure) Rybka's reverse engineered engine called Ippolit.

Out of curiosity I looked at the sources, well the source, it is a single, horrid to read, file.

I found an idea I never saw before.

When null search fails high we simply return beta, eventually after zugzwang verification search.

In this case, before to return, the null value (the result of the null search) is saved in the TT table as a LOWER BOUND type node (as it should be) but with NO associated move (as normally happens only for upper bound nodes).

I think the logic makes sense: null search is just a normal search but on an undefined move, on an absolutly dumb move, if we anyhow fail high it makes sense to store we are in a cut-off type node and because we don't have searched any specific move we store MOVE_NONE in the hash table.

Does anyone have ever heard of such idea before ? For me it is new, but I am not in this field from a long ago


Марко Костальба - это тот, кто сделел Stockfish из Glaurunga

Say thanks!: 1 
Profile Reply
immortal223
administrator


Post №: 2961
Joined: 14.07.07
Rank: 54
link post  Posted: 19.10.09 23:15. Post subject: Bison пишет: Марко ..


Bison пишет:

 quote:
Марко Костальба - это тот, кто сделел Stockfish из Glaurunga



ждём добавления +100 от стокфиша 2

Say thanks!: 0 
Profile Reply
Bison



Post №: 87
Joined: 20.06.09
Rank: 2
link post  Posted: 19.10.09 23:16. Post subject: Все это с толкчесс В..


Все это с толкчесс Вообще для знающих английский веселая там темка. Одни говорят, что автора Ипполита звали Ида Про, а другие спорят о том, хорошо ли быть капиталистами.
OffTopic: Капиталисты - такой мнительный народ,
Везде им мерещатся заговоры и перевороты. (с)


Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 19.10.09 23:25. Post subject: Удвоение скорости, н..



 quote:
Удвоение скорости, насколько я помню, дает ~70 пунктов Эло, так что в знаниях он не особо прибавил, правильно?



Если бы знать, что такое знания. Если говорить об ОФ, то в Рыбке 3 она посложнее будет. Но и медленнее.

Насчет удвоения скорости. В среднем - да, около 70 пунктов. Но это при игре непохожих движков.
Если же наш новый движок вдвое быстрее предыдущей версии, и считает соответственно на полуход дальше, но играет по тому же алгоритму, то разница в ЭЛО получится намного больше. Просто такой новый движок всегда будет знать ответный ход соперника и будет редко ошибаться против него. А старый будет ошибаться часто.


Say thanks!: 2 
Reply
Renegat23
administrator


Post №: 4577
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 20.10.09 06:20. Post subject: Заметил, что Рыбка в..


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

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4578
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 20.10.09 06:35. Post subject: Еще заметил, что оце..


Еще заметил, что оценка материального дисбаланса у Ипполита с Рыбкой абсолютно разная - иногда вообще прямо противоположная. Это касается как компенсации за ферзя, так и борьбы легких фигур с пешками против тяжелых. Причем непонятно, чья оценка лучше - оба бывало ошибались. Но статистически, Ипполит ошибается реже. Так что если это и клон, то точно не Рыбки 3.

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2180
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 20.10.09 06:38. Post subject: IPP_ENG*.c - достато..


IPP_ENG*.c - достаточно ли одного этого файла для компиляции? Скачал Code Blocks 8.02, попробовал скомпилировать - кучу ошибок выдала прога: то ей то не нравится, то это, файлы отсутствуют с расширением *.h и так далее. Исходник bankuss-а такие ошибки не выдаёт, но всё равно не хочет компилироваться и требует какой-то файл. Может, компилятор нужен помощнее? В программировании я не силён.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1781
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 20.10.09 06:41. Post subject: Кевин нужны 2 файла ..


Кевин нужны 2 файла - основной .с и заголовочный .h

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1782
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 20.10.09 06:42. Post subject: bankuss пишет: Исх..




 quote:
Исходник bankuss-а

я кстати правленные исходники не выкладывал

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1110
Joined: 19.10.07
Rank: 3
link post  Posted: 20.10.09 06:51. Post subject: Osipov Не похоже, ч..


Osipov

 quote:
Не похоже, чтобы это писала человеческая рука. Рука была явно механическая. Похоже, здесь прошёлся какой-то мощный декомпилятор.


Нужно смотреть английскую версию Ипполита, т.к. она ближе к оригиналу. Русская получена путем каких-то извращений над кодом.

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4580
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 20.10.09 06:54. Post subject: Кстати. В Рыбки 4 ав..


Кстати. В Рыбке 4 автор вряд ли стал бы настолько координально изменять оценку дисбаланса, ибо она была и без того хороша. Скорее мелкие доработки и усовершенствования по сравнению с Рыбкой 3. Но никак не противоположные оценки!
Поэтому, следуя этой логике надо признать, что Ипполит не может быть клоном и Рыбки 4!

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1111
Joined: 19.10.07
Rank: 3
link post  Posted: 20.10.09 07:08. Post subject: Renegat23 следуя это..


Renegat23

 quote:
следуя этой логике


Сомнительная логика. Может нужно признать что и Рыбка 3 не является клоном Рыбки 2?

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2181
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 20.10.09 08:06. Post subject: bankuss пишет: я кс..


bankuss пишет:

 quote:
я кстати правленные исходники не выкладывал


А, ну не помню кто, но выкладывали файл IPPOLIT 64 1Gb SOURCE, ThinkingAlot2, может, так там есть h-файл. На сайте автора Ипполита можно скачать только IPP_ENG.c и IPPOLIT.c Где же взять h-файл? Очень надо. Из IPPOLIT 64 1Gb SOURCE не подойдёт? Или самому нужно его делать?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1783
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 20.10.09 08:09. Post subject: Кевин пишет: На сай..


Кевин пишет:

 quote:
На сайте автора Ипполита

был, я скачивал. только его переименовать надо. он как раз под 32-б заточен. сам не сделаешь, там код проги.

Say thanks!: 0 
Profile Reply
Bison



Post №: 88
Joined: 20.06.09
Rank: 2
link post  Posted: 20.10.09 09:27. Post subject: Вот исходники все..


Вот исходники все

Say thanks!: 1 
Profile Reply
Кевин
Резидент


Post №: 2184
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 20.10.09 10:10. Post subject: bankuss пишет: был,..


bankuss пишет:

 quote:
был, я скачивал. только его переименовать надо. он как раз под 32-б заточен. сам не сделаешь, там код проги.



Точно, это windows32.h, я его тоже скачал, но не подумал переименовать. Но Bison , всё равно спасибо.

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 153
Joined: 14.08.07
Rank: 0
link post  Posted: 20.10.09 11:14. Post subject: Ктож первым прикрути..


Ктож первым прикрутит ипполиту многоядерность и поддержку tbs?

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2186
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 20.10.09 12:05. Post subject: md пишет: Ктож перв..


md пишет:

 quote:
Ктож первым прикрутит ипполиту многоядерность и поддержку tbs?


Тому плюсы в репутацию и награду за труды Не так это просто сделать, как видимо.

Say thanks!: 0 
Profile Reply
Lancelot



Post №: 119
Joined: 06.08.08
Rank: 3
link post  Posted: 20.10.09 12:33. Post subject: md пишет: Ктож перв..


md пишет:

 quote:
Ктож первым прикрутит ипполиту многоядерность и поддержку tbs?


Васик Райлих. И появится Рыбка 4.

Say thanks!: 0 
Profile Reply
WinPooh



Post №: 7
Joined: 29.01.08
Rank: 0
link post  Posted: 20.10.09 12:55. Post subject: Ну что, господа прис..


Ну что, господа присяжные заседатели, кто-нибудь уже понял, в чём у него фишка и где у него кнопка?

Say thanks!: 0 
Profile Reply
Bison



Post №: 89
Joined: 20.06.09
Rank: 3
link post  Posted: 20.10.09 15:27. Post subject: WinPooh Я думаю, фи..


WinPooh
Я думаю, фишка в поиске, а в чем именно надо смотреть.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 87
Joined: 05.09.08
Rank: 2
link post  Posted: 20.10.09 16:21. Post subject: Osipov пишет: Иппол..


Osipov пишет:

 quote:
Ипполит на 100% быстрее Рыбки 3


Может это следствие разных алгоритмов поиска? Для такой сложной оценки Ипполит показывает нереальную скорость в килонодах.

Say thanks!: 0 
Profile Reply
Bison



Post №: 90
Joined: 20.06.09
Rank: 3
link post  Posted: 20.10.09 19:25. Post subject: Если Ипполит имеет к..


Если Ипполит имеет какое-то отношение к Рыбке, то надо признать, что Васик очень трудолюбивый человек, потому как многие идеи Ипполита лежат вроде как на поверхности, только вот испробовать их у многих руки не доходят. Вот, например, такое продление поиска (extension)
white_pv ()

 quote:
 
if (deepness >= 16 && S->transpositional_movement && singular < 2 && white_ok (S->transpositional_movement)) {
// реальная глубина в 2 раза меньше
// white_exclustion () - функция ищет все ходы, кроме trans move
move = S->transpositional_movement;
kk = ((move) & 077);
ot = (((move) >> 6) & 077);
white_spell (move); // делаем ход
evaluation_scoring (-0x7fff0000, 0x7fff0000, move);
if (((tower_structure + 1)->white_king_check))
{
white_unspell (move);
goto zab;
}
score = -black_pv (-above, -below, deepness - 10, (((tower_structure + 1)->black_king_check)) != 0);
white_unspell (move); // отмена хода назад
if (shah) // нам шах
itog = white_exclustion_check (score - deepness / 2, deepness - (((12) <= (deepness / 2)) ? (12) : (deepness / 2)), move & 0x7fff);
else
itog = white_exclustion (score - deepness / 2, deepness - (((12) <= (deepness / 2)) ? (12) : (deepness / 2)), move & 0x7fff);
if (itog < score - deepness / 2) // все остальные ходы проигрывают нашему ходу из trans
{
singular = 1; // т.н. "единственность" (чем больше, тем хуже остальные ходы, как-то так)
if (shah)
itog = white_exclustion_check (score - deepness, deepness - (((12) <= (deepness / 2)) ? (12) : (deepness / 2)), move & 0x7fff);
else
itog = white_exclustion (score - deepness, deepness - (((12) <= (deepness / 2)) ? (12) : (deepness / 2)), move & 0x7fff);
if (itog < score - deepness)
singular = 2;
}
}


там же ниже

 quote:
 
while ((move = white_next (S))) {
...
novel_deepness = deepness - 2 + (((stretches) >= (singular)) ? (stretches) : (singular)); // новая глубина
// stretches - обычные extensions
...
}

Простая идея - если остальные ходы кажутся значительно более плохими, то единственный "хороший" ход посчитаем поглубже. Другое дело, что прибавка от extensions редко бывает значительной.

Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 2980
Joined: 14.07.07
Rank: 55
link post  Posted: 20.10.09 19:30. Post subject: Bison нам простым ..


Bison

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

Say thanks!: 0 
Profile Reply
Bison



Post №: 91
Joined: 20.06.09
Rank: 3
link post  Posted: 20.10.09 19:33. Post subject: immortal223 Все уже..


immortal223
Все уже прикручено другими. В Shredder Classic жмешь F11 во время анализа и смотришь мультик

Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 2982
Joined: 14.07.07
Rank: 55
link post  Posted: 20.10.09 19:42. Post subject: Bison Это не мульт..


Bison

Это не мультик - это доска анализа текущего варианта
Мультик - это F6

Say thanks!: 0 
Profile Reply
Bison



Post №: 92
Joined: 20.06.09
Rank: 3
link post  Posted: 20.10.09 19:46. Post subject: immortal223 Блин, а..


immortal223
Блин, а я думаю, что за мультик А это оказывается МультиПВ. Сделать реально, скоро кто-нибудь точно присобачит, я уверен.

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 20.10.09 23:24. Post subject: Ещё раз про скорость..


Ещё раз про скорость Ипполита. Оказалось, что я неправильно сравнивал с Рыбкой. Рыбка считает узлы только в make_move, а Ипполит ещё и в нулевом ходе: nodals_nobody. Поэтому и показывает более высокую скорость. Надо будет проверить, на сколько это отличается.


Say thanks!: 0 
Reply
grifsergei



Post №: 23
Joined: 07.08.07
Rank: 0
link post  Posted: 21.10.09 00:29. Post subject: Есть ли у рыбки (Ипп..


Есть ли у рыбки (Ипполита) кардинальное отличие от других движков? если да , то в чем оно?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1794
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 21.10.09 06:13. Post subject: в версии hashPV доба..


в версии hashPV добавлено:
#define hash_variated_size (0x100000)
#define hash_variated_mask ((hash_variated_size - 1) & 0xfffffffffffffffc)
type_hash_variated table_hash_variated[hash_variated_size];

в процедуре wipe_hash изменено:
memset (table_hash_variated, 0, hash_variated_size * sizeof (type_hash_variated));

в процедурах: white_pv;black_pv;white_cut_check;black_cut_check;white_cut;black_cut;white_all;black_all;white_all_check;black_all_check
добавлено:
type_hash_variated *hash_variated;
+ код:
if (deepness >= 6)
{
k = apropos_hash & hash_variated_mask;
for (i = 0; i < 4; i++)
{
hash_variated = table_hash_variated + (k + i);
if (hash_variated->hash_64bit == apropos_hash)
{
if (hash_variated->deepness >= deepness) return hash_variated->score;
}
}
}

но я заметил, что в white_pv этот код вставлен не так, как в других. у себя поправил.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 89
Joined: 05.09.08
Rank: 2
link post  Posted: 21.10.09 07:12. Post subject: Во всех функциях кро..


Во всех функциях кроме white_pv() и black_pv() условие deepness >= 6 нужно для того, чтобы гарантированно не было тормозов. Можно его убрать везде, скорей всего
скорость не изменится, но для эффективности поиска это ничего не даст. А вот добавлять (deepness >= 6) в white_pv() и black_pv() бессмысленно - на них приходится меньше 1% времени выполнения программы.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1797
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 21.10.09 07:35. Post subject: ThinkingALot а ну да..


ThinkingALot а ну да, в этих функциях условия на глубину нет.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1798
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 21.10.09 09:32. Post subject: ThinkingALot вот, пр..


ThinkingALot вот, проверь все ли так :) http://ifolder.ru/14601817
я там кое-какие переменные переименовал

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 92
Joined: 05.09.08
Rank: 2
link post  Posted: 21.10.09 11:44. Post subject: Залил в основную вет..


Залил в основную ветку версию 0080d hpv.
Это исходники из поста выше+
1) & hash_variated_mask в pv_hashize().
2) Вызов pv_hashize из hash_exactly только если depth >= 2.
3) В cut/all функциях поиска hash_variated смотрится после основного хэша.
4) Хэширование результата перебора в корне.
5) Все настройки вынесены в .h файл в виде $define XXX. Соответсвенно комментируем/не комментируем строчки с #undef XXX.
6) Дальнейшая замена deepness, below, above на привычные аналоги.
7) Оболочке отсылается название программы, записанное в файле Ippolit.txt.

P.S. Моя компиляция скорее всего будет вылетать.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1801
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 21.10.09 12:10. Post subject: ThinkingALot спасибо..


ThinkingALot спасибо! сейчас 32-шку проверил, все нормально.
это я где то не так вставил твой код видимо: смотрел прогой-сверялкой 2-х txt файлов и там смотрел разницу.

а под мультик, я так понимаю, нужен массив структур (ходы, оценка, узлы) и в корне перебора все это в нужные места рассовывать?

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 21.10.09 12:39. Post subject: Проверил ещё раз ско..


Проверил ещё раз скорость Ипполита - убрал подсчет узлов в нулевом ходе. Число узлов уменьшилось примерно на 15%. Итого, получается, что Ипполит примерно на 85% быстрее Рыбки 3.

Еще просьба - для устранения багов. Может кто-нибудь дать позиции, в которых Ипполит падает или жертвует ферзя, или показывает мат в 500 ходов? А то я прогнал на своём стандартном EPD-тесте из 800 позиций и вроде бы нормально прошло.


Say thanks!: 0 
Reply
ThinkingALot
VIP


Post №: 94
Joined: 05.09.08
Rank: 2
link post  Posted: 21.10.09 13:12. Post subject: Жертва ферзя - это б..


Жертва ферзя - это баг русской версии. Падают только мои компиляции (сейчас собрал с Multi-threaded DLL вместо Multi-threaded, вроде пока без проблем). Причем только когда ставлю играть матч - бесконечный анализ работает на ура. Поэтому воспроизвести баг не получается.

Say thanks!: 0 
Profile Reply
Otodranik
VIP


Post №: 1054
Joined: 21.09.07
Rank: 17

Awards: За лучшую дебютную книгу "Storm"
link post  Posted: 21.10.09 13:22. Post subject: Баги, мною замеченны..


Баги, мною замеченные: Время беспардонно просрочил Вообще на загрузился

Say thanks!: 0 
Profile Reply
Behovodec



Post №: 50
Joined: 26.08.09
Rank: 2
link post  Posted: 21.10.09 13:51. Post subject: У меня есть вопросы ..


У меня есть вопросы к анализу в Арене. В данном случае анализ стартовой позиции Ипполитом 0.080a w32.



Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 2991
Joined: 14.07.07
Rank: 55
link post  Posted: 21.10.09 13:53. Post subject: Behovodec У тебя с..


Behovodec

У тебя старая версия очевидно.

Say thanks!: 1 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 21.10.09 18:47. Post subject: Otodranik, из картин..


Otodranik, из картинок не понятно, что там происходило и в какой момент. Если это происходило в партии, то лучше дать PGN. Но лучше - просто позиция (fen-строка), в которой происходит глюк, причём очень желательно - воспроизводимый.


Say thanks!: 0 
Reply
ms 13
moderator


Post №: 208
Joined: 04.10.08
Rank: 8

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 21.10.09 19:03. Post subject: Вот например ..


Вот например Hidden text. Click here


Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 21.10.09 22:37. Post subject: Извиняюсь, PGN парти..


Извиняюсь, PGN партий пожалуй не подойдёт. Там играли на время, а это почти нереально воспроизвести.
Ладно, придётся самому искать глюки.

Сегодня провёл турнир под своей оболочкой между Ипполитом и "своей" версией Рыбки 3. Играли 412 партий из 206 начальных позиций, оба считали на фиксированную глубину depth=6. Начиная с 12-й партии на Ипполита напала порча - начал сливать всё подряд. Где-то между 220-й и 280-й партиями почему-то восстановился и начал выигрывать. Потом опять провалился и слил.
Итог: +60 -268 =84 в пользу Рыбки.
Было несколько партий, где Ипполит надолго задумывался - тратил времени раз в 10 больше, чем Рыбка. И узлов в итоге насчитал почти в 3 раза больше.
Есть над чем подумать.


Say thanks!: 1 
Reply
Кевин
Резидент


Post №: 2218
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 22.10.09 05:15. Post subject: Osipov , bankuss и д..


Osipov , bankuss и другие программисты: какой компилятор посоветуете? Как для компиляции Ипполита, так и вообще. Хочу немного поизучать языки программирования, раз уж тут такая интересная тема - на руках есть исходникик Ипполита.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1816
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 22.10.09 05:55. Post subject: Кевин просто для изу..


Кевин просто для изучения достаточно бесплатной версии VS express (2005 или 2008). качается с мелкософта.
а так, самый быстрый код выдает компилятор от intel, но он в версии для windows стоит немалых денег.

Say thanks!: 1 
Profile Reply
NS
VIP


Post №: 1340
Joined: 16.09.07
Rank: 5
link post  Posted: 22.10.09 09:44. Post subject: http://software.inte..


http://software.intel.com/en-us/articles/intel-c-compiler-professional-edition-for-windows-evaluation/
Вот тут можно скачать месячный триал.

Say thanks!: 1 
Profile Reply
kpripper
Виновник торжества


Post №: 353
Joined: 19.10.08
Rank: 3

Reprimands: За мат в названии темы!
link post  Posted: 22.10.09 10:36. Post subject: Прикрутите кто-нибуд..


Прикрутите кто-нибудь поддержку нескольких линий в анализе или это сложно ?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1818
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 22.10.09 10:41. Post subject: kpripper было бы про..


kpripper было бы просто, давно бы сделали.

Say thanks!: 0 
Profile Reply
unknow



Post №: 92
Joined: 19.12.08
Rank: 0
link post  Posted: 22.10.09 12:13. Post subject: Кевин пишет: какой ..


Кевин пишет:

 quote:
какой компилятор посоветуете?


Я пользую CodeLite (это IDE - редактор и отладчик) + компиляторы MinGW. Это всё бессрочно бесплатно.

Для компиляции Ипполита с помощью MinGW надо в localdefs.h
заменить ассемблерный инлайн BSF/BSR на:
 
extern int asm_rbit_pos(UINT64 val) __attribute__ ((regparm(2)));
#define BSF asm_rbit_pos

extern int asm_lbit_pos(UINT64 val) __attribute__ ((regparm(2)));
#define BSR asm_lbit_pos
и добавить в проект CodeLite исходник asm.s с текстом:

 
############################################################
# int asm_rbit_pos(u64 val) __attribute__ ((regparm(2)))
# lo32 -> %eax
# hi32 -> %edx

.globl _asm_rbit_pos

_asm_rbit_pos:
testl %eax, %eax
jz r_hi
bsfl %eax, %eax
jmp r_ret

r_hi:
bsfl %edx, %eax
addl $32, %eax

r_ret:
ret

############################################################
# int asm_lbit_pos(u64 val) __attribute__ ((regparm(2)))
# lo32 -> %eax
# hi32 -> %edx

.globl _asm_lbit_pos

_asm_lbit_pos:
testl %edx, %edx
jz l_lo
bsrl %edx, %eax
addl $32, %eax
jmp l_ret

l_lo:
bsrl %eax, %eax

l_ret:
ret

Ну и еще добавлять в конец длинных 16-ричных констант суффикс ULL,
чтобы warning'и не сыпались при компиляции.

Say thanks!: 1 
Profile Reply
Renegat23
administrator


Post №: 4617
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 22.10.09 15:56. Post subject: Господа программисты..


Господа программисты (ThinkingALot, Bison, Osipov, NS, WildCat, WinPooh, ChessTerminator75, bankuss). Два вопроса.

1) Почему ослабела версия d по сравнению с b ?
2) Возьметься все-таки кто-нибудь приделывать движку многопоточность или так друг на друга и будем кивать?

Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 3004
Joined: 14.07.07
Rank: 56
link post  Posted: 22.10.09 16:03. Post subject: Renegat23 пишет: 2)..


Renegat23 пишет:

 quote:
2) Возьметься все-таки кто-нибудь приделывать движку многопоточность или так друг на друга и будем кивать?



Ака ты махнул с многопоточностью!
Я бы просто хотел multiPV увидеить для начала, а то для анализа он очень неудобен пока что, кроме того в ИДЕЕ аквариумской он тоже не работает :( так как команду searchmoves тоже не поддерживает.. А там глядишь уже и рыбка 4 поспеет и как верно замечено было - все постепенно забудут про Ипполит, пока не выйдет Ипполит 2 основанный на коде Рыбки 5

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4619
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 22.10.09 16:05. Post subject: immortal223 пишет: ..


immortal223 пишет:

 quote:
Я бы просто хотел multiPV увидеить для начала


ИМХО, многопоточность гораздо более актуальна, чем mPV. Анализировать вполне можно и по одной линии. А вот скорость...

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 96
Joined: 05.09.08
Rank: 2
link post  Posted: 22.10.09 16:15. Post subject: Renegat23 пишет: 1)..


Renegat23 пишет:

 quote:
1) Почему ослабела версия d по сравнению с b ?
2) Возьметься все-таки кто-нибудь приделывать движку многопоточность или так друг на друга и будем кивать?



1) Смысл версии d исключительно в длительном хранении результатов анализа. Почему играет слабее - без понятия. Может статистическая погрешность.
Разница скорее всего в пределах 20-30 пунктов.
2) Это очень долго и скучно. К примеру, просто переопределение всех структур под мультипоточность для движка по сложности сопоставимого со Стрелкой заняло у меня пол дня.
Код Ипполита многократно сложнее. При этом распараллеливание a-la Фрукт может запросто вообще не сработать, а нормальный алгоритм, как в Stockfish, - это возня с каждой из множества функций поиска.

Say thanks!: 1 
Profile Reply
immortal223
administrator


Post №: 3005
Joined: 14.07.07
Rank: 56
link post  Posted: 22.10.09 16:16. Post subject: Renegat23 Зато при..


Renegat23

Зато приделать её в 100 раз труднее

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1821
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 22.10.09 17:24. Post subject: кстати, если компиля..


кстати, если компилять интеловским компилятором в дебаг режиме, то он при запуске ехе начинает ругаться на
static __inline int BSF (UINT64 x)
{
int y;
_BitScanForward64(&y,x);
return y;
}
что эта функция портит стэк

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 98
Joined: 05.09.08
Rank: 2
link post  Posted: 22.10.09 18:36. Post subject: Есть какое-нибудь ус..


Есть какое-нибудь ускорение от ICC?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1822
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 22.10.09 18:50. Post subject: ThinkingALot не изве..


ThinkingALot не известно. если release версию сделать то к 12 полуходу она вызывает ошибку и вылет в ос

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 99
Joined: 05.09.08
Rank: 2
link post  Posted: 22.10.09 19:13. Post subject: Возмодно поможет одн..


Возмодно поможет одно из 3x:
1) Переписать BSF/BSR на ассемблере: bsf/bsr rax, x
2) Убрать опции /Qipo, /ipo - в общем отключить interprocedural optimization.
3) Попробовать Profile Guided Optimization.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 101
Joined: 05.09.08
Rank: 2
link post  Posted: 22.10.09 19:43. Post subject: Погонял infinite ana..


Погонял infinite analysis по несколько минут версии d в сравнении с b. Создалось впечатление, что у d больше branching factor. То есть глубины 16 достигают примерно одновременно, а до 20 версия d считает в несколько раз дольше. Хотя возможно это всего лишь статистическая погрешность.

Say thanks!: 0 
Profile Reply
дуп



Post №: 34
Joined: 18.03.08
Rank: -1
link post  Posted: 22.10.09 20:19. Post subject: Может быть немного н..


Может быть немного не в тему, извиняйте. Надоело глядеть на эти дебильные имена, вручную переименовывать влом, все-таки 14,5 тысяч строк. Решил механизировать процесс. Начал писать программульку, завтра будет готова. Только писать тоже влом, может быть у кого готовое чего есть, чтобы не изобретать велосипед. Задумка такая: Создаешь папку, туда эту самую прогу и любой текстовый файл, например "IPP_ENG.c". Вводишь старое слово и новое. И все. Прога создает тут же новый файл, точно такой же и с таким же расширением. Все различия - все заданные имена поменяны на новые.
Так есть у кого чего-нибудь наподобе?

Say thanks!: 0 
Profile Reply
Ramzes II
VIP


Post №: 303
Joined: 02.10.07
Rank: 6

Awards: За ваш труд!
link post  Posted: 22.10.09 20:36. Post subject: А зачем изобретать в..


А зачем изобретать велосипед? Тот же Notepad++ способен заменять имена.

Say thanks!: 1 
Profile Reply
Gata



Post №: 335
Joined: 21.02.08
Rank: -1
link post  Posted: 22.10.09 21:01. Post subject: Обычный блокнот тоже..


Обычный блокнот тоже справится

Say thanks!: 1 
Profile Reply
дуп



Post №: 35
Joined: 18.03.08
Rank: -1
link post  Posted: 22.10.09 21:28. Post subject: Во, а я и не знал пр..


Во, а я и не знал про Блокнот Спасибо.

Say thanks!: 0 
Profile Reply
Steven Edwards



Post №: 8
Joined: 16.05.09
Rank: 0
link post  Posted: 22.10.09 21:28. Post subject: Is it possible to ma..


Is it possible to make MP version of Ippolite ?

Say thanks!: 0 
Profile Reply
никел
VIP


Post №: 216
Joined: 13.03.09
Rank: 3
link post  Posted: 22.10.09 21:51. Post subject: Yes, it will be call..


Yes, it will be called Igorrit

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2236
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 22.10.09 22:44. Post subject: bankuss пишет: но о..


bankuss пишет:

 quote:
но он в версии для windows стоит немалых денег.



Так можно же с лекарством скачать

Intel(R) C++ Compiler Professional Edition for Windows* Version 11.1.035
Hidden text. Click here


[hideguest]http://torrents.ru/forum/viewtopic.php?t=2303268[/hideguest]

Вот теперь и поработаю, когда будет время.

Say thanks!: 0 
Profile Reply
atri



Post №: 341
Joined: 27.09.07
Rank: 3
link post  Posted: 23.10.09 02:20. Post subject: Перечитал ветку на к..


Перечитал ветку на крестбуке по поводу появления Стрелки+появление Рыбкина. Нашел там интересную фразу Юрия Осипова

 quote:

Версия 2.4 по алгоритму совершенно одинакова с 1.8. Изменен только расчет времени на обдумывание хода. Это попытка нащупать путь к более оптимальному распределению времени по партии. В идеале хотелось бы найти критерии для выполнения "instant move", а« также критерии для глубокого размышления в критических позициях.»


Оригинальный текст

Вся соль в том, что наблюдая за тестами Иполита я заметил, что он часто расходует время больше обычного в критических ситуациях, и часто этим переигрывает Рыбку. ИМХО конечно, но автор похоже реально мастер

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 102
Joined: 05.09.08
Rank: 2
link post  Posted: 23.10.09 13:26. Post subject: дуп пишет: Может бы..


дуп пишет:

 quote:
Может быть немного не в тему, извиняйте. Надоело глядеть на эти дебильные имена, вручную переименовывать влом, все-таки 14,5 тысяч строк. Решил механизировать процесс. Начал писать программульку, завтра будет готова. Только писать тоже влом, может быть у кого готовое чего есть, чтобы не изобретать велосипед. Задумка такая: Создаешь папку, туда эту самую прогу и любой текстовый файл, например "IPP_ENG.c". Вводишь старое слово и новое. И все. Прога создает тут же новый файл, точно такой же и с таким же расширением. Все различия - все заданные имена поменяны на новые.
Так есть у кого чего-нибудь наподобе?


Visual Studio: Ctrl+F->Quick Replace->Replace All
Есть еще полезная функция (Клик правой кнопкой мыши)->Collapse all definitions. Гораздо проще ориентироваться в коде, особенно неструктурированном, как у Ипполита.

Say thanks!: 1 
Profile Reply
immortal223
administrator


Post №: 3020
Joined: 14.07.07
Rank: 56
link post  Posted: 23.10.09 20:50. Post subject: ThinkingALot bankuss..


ThinkingALot bankuss

А ну-ка, ребята, признавайтесь, что вы там наделали с ИППОЛИТом??

Сравним:


[chess]8/5k1p/8/6b1/2P1K3/8/8/8 b - -[/chess]

Engine: IPPOLIT 0.080b x64 (512 MB)
Yakov Petrovich Golyadkin

...

32/47 0:13 -0.05 1...Be7 2.Kf3 h5 3.Kg2 Ke8 4.Kh1 Bc5
5.Kg2 Kf7 6.Kh1 Kg8 7.Kg2 Bd4 8.Kh1 Kf7
9.Kg2 Ke8 10.Kh1 Kd7 11.Kh2 Bc5
12.Kg2 Ke8 13.Kh1 Kf7 14.Kg2 Bd6 (41.827.137) 3018



Engine: IPPOLIT 0.080d x64 hpv (512 MB)
Yakov Petrovich Golyadkin

...

28/57 0:14 -4.46 1...Kg6 2.Kf3 Kh5 3.Kg3 Bd8 4.Kg2 Kh4
5.Kh1 Kh3 6.Kg1 Kg3 7.Kh1 Bc7 8.c5 Kh3
9.Kg1 Kg3 10.Kh1 (41.725.316) 2896

Требую объяснений!!!


Say thanks!: 0 
Profile Reply
никел
VIP


Post №: 224
Joined: 13.03.09
Rank: 3
link post  Posted: 23.10.09 23:19. Post subject: Does this proves tha..


Does this proves that something went wrong?

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 23.10.09 23:23. Post subject: Господа! Мы как-то з..


Господа!
Мы как-то зациклились на Ипполите. А ведь есть его более продвинутый аналог - Robbolito.
Ипполиту уже полгода, а Robbolito более свежий. Буржуи говорят, что он более стабилен и содержит меньше ошибок. Поддерживает изменение размера хэша и выводит currmove.
Я почитал его тексты - там хоть и по итальянски, но текст в целом лучше структурирован. Одна беда - он не заточен под компиляцию в Студии. Мне пришлось пару часов скрежетать напильником, чтобы откомпилировать его в VC 2008 express. Заработал, гад, сейчас запустил тестирование. После 5 партий против Рыбки 3 ведёт: +3 -0 =2.

Однако, хотелось бы сделать более грамотную компиляцию. Судя по всему, этому Robbolito нужен GCC. И тут хотелось бы выяснить два вопроса:
1. Где взять этот GCC, да так чтобы скомпилировать под Windows, а не под Linux.
2. Как компилировать, имея makefile. Желательно, поподробнее.
Последний вопрос, конечно, для чайников. Но я и есть чайник.

P.S. Пока писал, Robbolito выиграл ещё одну партию у Рыбки. Стало +4 -0 =2.


Say thanks!: 0 
Reply
никел
VIP


Post №: 225
Joined: 13.03.09
Rank: 3
link post  Posted: 23.10.09 23:31. Post subject: Is this what is need..


Is this what is needed to compile in windows?


http://www.mingw.org/

Say thanks!: 0 
Profile Reply
Iork



Post №: 179
Joined: 17.01.09
Rank: 1
link post  Posted: 23.10.09 23:42. Post subject: Osipov пишет: Мы как..


Osipov пишет:

 quote:
Мы как-то зациклились на Ипполите. А ведь есть его более продвинутый аналог - Robbolito.



Где же его качнуть то можно ? Может потом выложите скомпилированный ?

Say thanks!: 0 
Profile Reply
дуп



Post №: 36
Joined: 18.03.08
Rank: -1
link post  Posted: 24.10.09 00:18. Post subject: Osipov пишет: 2. Ка..


Osipov пишет:

 quote:
2. Как компилировать, имея makefile. Желательно, поподробнее.


Если без осложнений, то стандартный способ такой. Сначала посмотрите, сколько там мейкфайлов под Винду. В Крафти, например, их бывает несколько, под каждую Студию. Если он там один, то он должен называться "Makefile", без расширения. Если несколько, то выбрать нужный и запомнить название. В Студии есть спецуттилитка, называется nmake. Вот она все и делает. Из Студии, в меню найти командную строку, набрать полный путь к папке с сорсами и вызвать эту уттилиту. Я сейчас напечатаю, как это делаю я, а вы подправите по месту. Итак:
cd C:\Documents and Settings\MyName\Мои документы\folder_source_name\ (здесь лучше нажать enter) nmake -f Makefile.расш.
Это если несколько мейкфайлов. Если один, то команда выгляит просто nmake.
//
У меня этого Робболито пока нет, конкретно его я не пробовал.

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2246
Joined: 06.01.08
Rank: 24

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 24.10.09 03:22. Post subject: Osipov пишет: 2. Ка..


Osipov пишет:

 quote:
2. Как компилировать, имея makefile. Желательно, поподробнее.
Последний вопрос, конечно, для чайников. Но я и есть чайник.


Если Вы чайник, то кто же тогда программист?

Say thanks!: 0 
Profile Reply
mmx



Post №: 4
Joined: 27.07.08
Rank: 0
link post  Posted: 24.10.09 07:05. Post subject: 2 Osipov Лучше взят..


2 Osipov
Лучше взять Codeblocks - в нем похожая на студию оболочка и компилятор мингв.

Say thanks!: 0 
Profile Reply
дуп



Post №: 37
Joined: 18.03.08
Rank: -1
link post  Posted: 24.10.09 07:36. Post subject: Думаю, если получитс..


Думаю, если получится сделать в VS, то лучше ничего и не надо. Компилятор там отличный, в мингв будет хуже. Главное, чтобы с Мэйкфайлом было все в порядке. "Два часа напильником" - это он наверное парился с поддержкой кроссплатформенности. Намного удобнее было, если бы авторы выкладывали два отдельных комплекта с исходниками. Тогда таких проблем бы не возникало.


 quote:
кто же тогда программист?


Дядя Вася. Великий и безгрешный.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 104
Joined: 05.09.08
Rank: 2
link post  Posted: 24.10.09 08:34. Post subject: Osipov пишет: Одна ..


Osipov пишет:

 quote:
Одна беда - он не заточен под компиляцию в Студии. Мне пришлось пару часов скрежетать напильником, чтобы откомпилировать его в VC 2008 express. Заработал, гад, сейчас запустил тестирование. После 5 партий против Рыбки 3 ведёт: +3 -0 =2.


Можешь выложить исходники?

immortal223 пишет:

 quote:
А ну-ка, ребята, признавайтесь, что вы там наделали с ИППОЛИТом??


Мда... без понятия почему так происходит...

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1830
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 09:44. Post subject: я тоже пробовал точи..


я тоже пробовал точить напильником но 20 ошибок так и не убрал, и не совсем понятно, что не нравится студии.
так как робболито под линукс, то компилятор там GCC конечно, я на работе 084 версию компильнул с 1 раза, без ошибок и проблем. проверял в консоли - все работало. scid у меня не был установлен, поэтому на позициях проверить не смог.
ну а раз Юрий уже что-то сдлелал - то можно общими усилиями доделать.


Say thanks!: 0 
Profile Reply
дуп



Post №: 38
Joined: 18.03.08
Rank: -1
link post  Posted: 24.10.09 09:44. Post subject: Да, через makefil..


Да, через makefile не получится. Тот, который там - не для VS.

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 24.10.09 09:54. Post subject: С makefile чего-то н..


С makefile чего-то не выходит, nmake ругается.
Когда делал в Студии через создание проекта, то проблемы были такие:
1. Не понимала asm-вставок, пришлось брать из Стрелки.
2. Не находила стандартных h-файлов, и связанных с ними функций получения времени и stdin/stdout. Заменил время на GetTickCount, а отслеживание ввода вообще вырубил.
3. Не нашла функцию posix_memalign - заменил на malloc.
Судя по названию последней функции, это заточено под Linux.


Say thanks!: 0 
Reply
bankuss
Black King


Post №: 1831
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 10:03. Post subject: типы данных тоже зам..


типы данных тоже заменить на:
#define uint8 unsigned __int8
#define sint8 signed __int8
#define sint16 unsigned __int16
#define uint16 signed __int16
#define uint64 unsigned __int64
#define sint64 signed __int64
#define sint32 unsigned __int32
#define uint32 signed __int32

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 24.10.09 10:09. Post subject: Вот залил весь проек..


Вот залил весь проект для VC 2008 Express, заодно и exe:

http://rapidshare.com/files/297180818/Robbolito.rar
http://ifolder.ru/14650414

Конечно, криво пока, но для начала сойдет.


Say thanks!: 7 
Reply
bankuss
Black King


Post №: 1832
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 10:43. Post subject: не хочет... Ошибка ..


не хочет... Ошибка 78 error C2371: tipo_prossimo: переопределение; различные базовые типы funzione.h

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 105
Joined: 05.09.08
Rank: 2
link post  Posted: 24.10.09 10:54. Post subject: Robbolito 0084 x64 И..


Robbolito 0084 x64
Изменение размера хэша сделано оригинально - надо открыть опции UCI и проставить там нужное значение вручную... Попробовал сначала обычным способом - Робболито завис.

P.S. У меня вылетает каждый раз при попытке послать лучший ход. Матч играть невозможно.

Say thanks!: 0 
Profile Reply
pan5



Post №: 108
Joined: 21.07.07
Rank: 0
link post  Posted: 24.10.09 10:55. Post subject: Даже версия 0084 выг..


Даже версия 0084 от Osipov выглядит посильнее Ипполита +2=2-0 (даже работает турнирный контроль)
Вся надежда на доблестных программистов форума и они доведут 0085 (а может и последующие версии) до exe под win.
Если не хотите менять имя движка, то добавляйте пожалуйста к номеру версии постфикс, указывающий на то, чья версия скомпилированного exe выложена.

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4636
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 24.10.09 10:59. Post subject: Робболито x86 уже си..


Робболито x86 уже сильнее Ипполита x64!

Say thanks!: 0 
Profile Reply
pan5



Post №: 109
Joined: 21.07.07
Rank: 0
link post  Posted: 24.10.09 11:06. Post subject: Радует, что работа а..


Радует, что работа авторов над движком вроде бы продолжается и пока нет предпосылок, что новые версии исходников не будут выкладываться на сайт. Возможно, авторы предполагали обвинения в клонировании, поэтому изначально не нацеливались на коммерческую версию. Счет уже +3=5-1 в пользу RobboLito 0084 против Ippolit 0.080b

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4637
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 24.10.09 11:12. Post subject: Robbolito слил 4 пар..


Robbolito слил 4 партии подряд по времени зависая при выходе из книги. Остановил матч.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 106
Joined: 05.09.08
Rank: 2
link post  Posted: 24.10.09 11:17. Post subject: w32 версия вроде нор..


w32 версия вроде нормально работает.

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4638
Joined: 14.07.07
Rank: 24

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 24.10.09 11:20. Post subject: ThinkingALot пишет: ..


ThinkingALot пишет:

 quote:
w32 версия вроде нормально работает.


Я ей матч и проводил. После 15 партий начала сливать по времени, не отсылая ход оболочке.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1833
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 11:20. Post subject: ага, зависает. когда..


ага, зависает. когда на анализ запускаешь начинает думать, делаешь ход на доске - тишина....

Say thanks!: 0 
Profile Reply
pan5



Post №: 110
Joined: 21.07.07
Rank: 0
link post  Posted: 24.10.09 11:20. Post subject: WinXP Frit12 книга H..


WinXP Frit12 книга HS-7moves, 1 мин на 40 ходов
IPPOLIT 0.0080b w32 - RobboLito version 0084 +2=5-6

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 24.10.09 11:31. Post subject: Там я убил приём ком..


Там я убил приём команд от оболочки во время думания. От того и виснет. Надо будет прикрутить стандартный input-available.
К тому же Robbolito тоже не совсем свободен от багов Ипполита, на него тоже нападает порча после нескольких партий. Поэтому, при тестировании под Ареной я поставил птичку: перегружать движки после каждой партии.


Say thanks!: 0 
Reply
onedrey



Post №: 33
Joined: 03.01.09
Rank: 0
link post  Posted: 24.10.09 11:38. Post subject: Robbolito 0084 x64 ..



 quote:
Robbolito 0084 x64
Изменение размера хэша сделано оригинально - надо открыть опции UCI и проставить там нужное значение вручную... Попробовал сначала обычным способом - Робболито завис.

P.S. У меня вылетает каждый раз при попытке послать лучший ход. Матч играть невозможно.


Большая просьба выложить откомпилированную 64-битную версию, если она годится хотя бы для анализа

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1834
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 11:38. Post subject: onedrey пишет: Боль..


onedrey пишет:

 quote:
Большая просьба выложить откомпилированную 64-битную версию, если она годится хотя бы для анализа

под линукс х64 без проблем

Say thanks!: 0 
Profile Reply
никел
VIP


Post №: 227
Joined: 13.03.09
Rank: 3
link post  Posted: 24.10.09 11:48. Post subject: Bankuss, is it possi..


Bankuss, is it possible with this package?

http://www.drangon.org/mingw/

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1835
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 11:53. Post subject: никел in monday do..


никел in monday do

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1129
Joined: 19.10.07
Rank: 5
link post  Posted: 24.10.09 11:53. Post subject: Osipov Вот залил ве..


Osipov

 quote:

Вот залил весь проект для VC 2008 Express, заодно и exe:


Вкладывать в архив RobboLito.ncb (7.7 Мб) было совершенно излишне.


Say thanks!: 0 
Profile Reply
никел
VIP


Post №: 228
Joined: 13.03.09
Rank: 3
link post  Posted: 24.10.09 11:55. Post subject: OK, thanks Bankuss ..


OK, thanks Bankuss

Say thanks!: 0 
Profile Reply
onedrey



Post №: 34
Joined: 03.01.09
Rank: 0
link post  Posted: 24.10.09 12:03. Post subject: под линукс х64 без п..



 quote:
под линукс х64 без проблем


Ясно. Я думал, что если там файл .vcproj, то это - проект VS, а если VS, то для виндовз
Тогда еще вопрос(ы). :)
Чем, по-вашему, вызвано, что версии выкладываются только под Линукс?
И как вообще его запускать в линуксе, под какой оболочкой? Я думал, что только под вайн запускаются виндовзкие облочки, а в них движки... По крайней мере, с рыбкой я не видел других вариантов

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1836
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 12:06. Post subject: onedrey то что вылож..


onedrey то что выложил Юрий - да под виндовс, но у меня его проект не компилируется.
а то что под линукс - компилишь, получаешь запускаемый файл, и запускаешь его в оболочке линукса, например scid (других незнаю).

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1837
Joined: 15.07.07
Rank: 15

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 12:09. Post subject: onedrey пишет: Чем,..


onedrey пишет:

 quote:
Чем, по-вашему, вызвано, что версии выкладываются только под Линукс?

бесплатность во всем! так как и сам линукс и его проги бесплатны (ну и двиг тоже)
или просто авторы работают на линуксе

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1845
Joined: 15.07.07
Rank: 16

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 24.10.09 18:35. Post subject: компиляция asm коман..


компиляция asm команд в режиме х64 VS2008(2005) не разрешается! все через masm64 (ml64) но как его использовать неясно...

Say thanks!: 0 
Profile Reply
onedrey



Post №: 35
Joined: 03.01.09
Rank: 0
link post  Posted: 24.10.09 20:41. Post subject: или просто авторы ра..



 quote:
или просто авторы работают на линуксе

Это понятно. Не ясно, как он его могут тестировать, если не в партиях с рыбой? Потому что под wine будет неадекватное сравнение.. Со старыми версиями стравливают? Можно, конечно, на разных машинах запустить рыбу и ипполита...

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1858
Joined: 15.07.07
Rank: 17

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 25.10.09 11:23. Post subject: Генерацию таблиц Роб..


Генерацию таблиц Робболито сможем переделать? ТБ как бы не помешают.
В линуксе он у меня все чинно сгенерил, по папкам разложил, при запуске видит.

Say thanks!: 0 
Profile Reply
IvenGO



Post №: 55
Joined: 28.08.08
Rank: 2
link post  Posted: 25.10.09 12:21. Post subject: Извиняюсь за неграмо..


Извиняюсь за неграмотный вопрос: вот тут все про алгоритмы да про алгоритмы, а что по оценочной функции сказать можно? Она революционно нова?

Say thanks!: 0 
Profile Reply
onedrey



Post №: 36
Joined: 03.01.09
Rank: 0
link post  Posted: 25.10.09 12:38. Post subject: а что по оценочной ф..



 quote:
а что по оценочной функции сказать можно?

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

Say thanks!: 0 
Profile Reply
unknow



Post №: 99
Joined: 19.12.08
Rank: 0
link post  Posted: 26.10.09 04:58. Post subject: Други! Как же легко ..


Други! Как же легко стало после Ипполита читать исходники Стрелки :)
Просто образец ясного и прозрачного кода. Только сейчас оценил.

Say thanks!: 0 
Profile Reply
WinPooh



Post №: 9
Joined: 29.01.08
Rank: 0
link post  Posted: 26.10.09 08:29. Post subject: Это вы ещё не читали..


Это вы ещё не читали исходники шахматной программы ИТЭФ для машины М-20, в виде рукописных бланков с автокодом

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1374
Joined: 16.09.07
Rank: 5
link post  Posted: 26.10.09 22:38. Post subject: В робболите зачем-то..


В робболите зачем-то время в миллисекундах умножается на 1000?!
А вот такой код вызывает ошибки, и очень тяжело понять его поведение:
void risolvere_termine (int d)
{
sint64 x;
if (!salto_ok)
return;
x = orologio () - OROLOGIO;
nodo_conteggio = nodo_frequenza;
if (d == ABISSO) // предельная глубина
cerca_alt (1);
if (x - INVIO > 1000000)
notizia (x);
if (d >= 1 && d < 8)
goto FINALE;
if (x > ORA_ASSOLUTA)
cerca_alt (1);
if (d == 0)
goto FINALE;
if (!MOSSA_BRUTTA && x >= ORA_BATTAGLIA)
cerca_alt (2);
if (FACILE && x >= ORA_FACILE)
cerca_alt (3);
if (!MOSSA_BATTAGLIA && x >= ORA_ORDINARIA && !MOSSA_BRUTTA)
cerca_alt (4);
FINALE:
while (interrogativo_ingresso ())
input_console ();
}
Аварийки срабатывают криво. Процедура эта запускается раз в неколько тысяч генераций ходов, а ней и аварийка по времени (при этом она не срабатывает при Depth от одного до восьми), и аварийка при достижении предельной глубины (255)

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1375
Joined: 16.09.07
Rank: 5
link post  Posted: 26.10.09 22:45. Post subject: Чтение консоли напис..


Чтение консоли написано с ошибкой. (interrogativo_ingresso ())

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1879
Joined: 15.07.07
Rank: 18

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 27.10.09 06:14. Post subject: В версии D всего 1 и..


В версии D всего 1 изменение: файле valu.c
#define bianco_minore_pietra (8<<2)
#define nero_minore_pietra (16<<2)

а было:
#define bianco_minore_pietra 8
#define nero_minore_pietra 16


Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1377
Joined: 16.09.07
Rank: 5
link post  Posted: 27.10.09 09:58. Post subject: просрочки убрал, рас..


просрочки убрал, расход времени сделал более агрессивным - сила увеличилась.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1881
Joined: 15.07.07
Rank: 18

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 27.10.09 10:16. Post subject: NS кидай изменения, ..


NS кидай изменения, внесем в исходники

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1381
Joined: 16.09.07
Rank: 5
link post  Posted: 27.10.09 10:27. Post subject: :) Потом. Ты силушку..


:) Потом. Ты силушку сначала проверь :)
Если NPS просадил - вечером откомпилирую по человечески, и забыл пондермув добавить - но это уже вечером.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1392
Joined: 16.09.07
Rank: 5
link post  Posted: 27.10.09 23:00. Post subject: Кроче - посмотрел на..


Кроче - посмотрел на свежую голову, ничего особо править не надо.
Достаточно поставить запас времени.
То есть перед расчетом времени написать

 
if (movestogo)
ORA = (ORA - 1000000 - movestogo * 200000);
else
ORA = (ORA - 1000000 - 40 * 200000); // в безлимитке запасаемся на 40 ходов.

//Ну и в случае израсходования времени, чтоб совсем не блицевала -
if (ORA < 100000) ORA = 100000;


И в аварийках убрать условие на глубину
 
// if (d >= 1 && d < 8)
// goto FINALE;


Либо переместить его сразу за основную аварийку
 
if (x > ORA_ASSOLUTA)
cerca_alt (1);
if (d >= 0 && d < 8) // при d==0 не надо использовать методы сокращения времени, это не вызов из корня
goto FINALE;


А вторая причина зависаний - это останавливаются часы. Надо смотреть где с разрядностью переменных накосячено.
uint64 x;
x = GetTickCount() * 1000;
В этом коде переполнение наверно действительно получается.

Say thanks!: 0 
Profile Reply
дуп



Post №: 41
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 09:49. Post subject: x = GetTickCount() ..




 quote:
x = GetTickCount() * 1000;


Не должно переполнить. Эта функция возвращает число мс с момента старта ОС. Т.е. спустя сутки после включения компа это число всего 86 400 000. Это если я не нагнал в подсчетах

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1396
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 09:56. Post subject: Результат умножения ..


Результат умножения имеет какой тип?
Результат умножения это не число мс. А 1000*Число мс.

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1148
Joined: 19.10.07
Rank: 5
link post  Posted: 28.10.09 09:57. Post subject: Т.е. спустя сутки по..



 quote:
Т.е. спустя сутки после включения компа это число всего 86 400 000


Т.е. если это чилсо умножить на 1000 то unsigned __int64 будет переполнятся где-то 20 раз в сутки.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 115
Joined: 05.09.08
Rank: 2
link post  Posted: 28.10.09 10:01. Post subject: WildCat пишет:  цит..


WildCat пишет:

 quote:
 цитата:
Т.е. спустя сутки после включения компа это число всего 86 400 000

Т.е. если это чилсо умножить на 1000 то unsigned __int64 будет переполнятся где-то 20 раз в сутки.


. int32 будет, int64 - нет.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1397
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:04. Post subject: результат умножения ..


результат умножения будет иметь какой тип? int32 или uint64?

Say thanks!: 0 
Profile Reply
дуп



Post №: 42
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 10:08. Post subject: NS пишет: результат..


NS пишет:

 quote:
результат умножения будет иметь какой тип? int32 или uint64?


uint64
В это x эти сутки влезут более 6 миллиардов раз

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1887
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 28.10.09 10:12. Post subject: во фрукте сделано де..


во фрукте сделано деление /1000 и числа типа double
можно попробовать так же

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1398
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:13. Post subject: А может всё-таки рез..


А может всё-таки результат умножения будет int32? Не знаю соглашений в этом языке, а в делфи резльтат будет 100% int32, а потом уже будет преобразовываться в int64.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1399
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:14. Post subject: А не проще ли умножи..


А не проще ли умножить просто на константу типа uint64 равную 1000? Вместо умножения на 1000.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1888
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 28.10.09 10:15. Post subject: double now_real() {..


double now_real()
{
return double(GetTickCount()) / 1000.0;
}

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1400
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:20. Post subject: Банкусс, ты о чем? u..


Банкусс, ты о чем?
uint64 tt = 1000;
x = GetTickCount() * tt;


исправляет эту ошибку.
больше ничего переписывать не надо.

Say thanks!: 0 
Profile Reply
дуп



Post №: 43
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 10:24. Post subject: Видел в файле cerca...


Видел в файле cerca.c подозрительное место:
TRASMISSIONE
("info time %lld nodes %lld nps %lld %s %s depth %d seldepth %d pv %s\n",
t, NODOS, nps * 1000, modificatore (BASSO, valu, ALTO, STRING3),
cp_mate (valu, STRING2), radice_abisso / 2, sd, pv);
}
В коде считаются беззнаковые типы uint64, а здесь спецификаторы формата для nodes и nps для знаковых. Маловероятно, конечно, но лучше, думаю переправить так:
("info time %I64d nodes %I64d nps %I64d %s %s depth %d seldepth %d pv %s\n",

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1149
Joined: 19.10.07
Rank: 5
link post  Posted: 28.10.09 10:26. Post subject: NS А может всё-таки ..


NS

 quote:
А может всё-таки результат умножения будет int32? Не знаю соглашений в этом языке, а в делфи резльтат будет 100% int32, а потом уже будет преобразовываться в int64.


Результат умножения будет 32-битный, и будет переполнятся 20 раз в сутки.

Достаточно один из операндов преобразовать в 64 бита.

GetTickCount() * uint64(1000)

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1401
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:28. Post subject: А вообще еще бы хоро..


А вообще еще бы хорошо заменить GetTickCount на timeGetTime.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1402
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:29. Post subject: WildCat пишет: Резу..


WildCat пишет:

 quote:
Результат умножения будет 32-битный, и будет переполнятся 20 раз в сутки.



Да знаю я. :)

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1889
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 28.10.09 10:30. Post subject: NS я про то, что нап..


NS я про то, что написал WildCat
WildCat пишет:

 quote:
GetTickCount() * uint64(1000)


1000 компилятор возьмет как 32-битную константу.
NS пишет:

 quote:
uint64 tt = 1000;

а так уже возьмет правильно :)

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1890
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 28.10.09 10:32. Post subject: дуп да, надо поправи..


дуп да, надо поправить. хотя у меня и с lld вроде без ошибок выводит

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1150
Joined: 19.10.07
Rank: 5
link post  Posted: 28.10.09 10:35. Post subject: bankuss, int64(1000)..


bankuss, uint64(1000) - это 64-битная константа.

NS

 quote:
Да знаю я. :)



 quote:
Не знаю соглашений в этом языке


Так знаешь или нет?

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1403
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 10:41. Post subject: Знаю. Это я издеваюс..


Знаю. Это я издеваюсь так. Я же выше написал что глюк в этом месте.
Точнее - не проверял, но был практически уверен что приведение типов работает также как в делфи.
bankuss пишет:

 quote:
дуп да, надо поправить. хотя у меня и с lld вроде без ошибок выводит



Нет смысла править - в этом месте всё ОК.

Say thanks!: 0 
Profile Reply
дуп



Post №: 44
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 10:52. Post subject: Я не знаю, чего там ..


Я не знаю, чего там у вас с WildCat- ом за левые компиляторы:
////////////////////////////////////////
#define uint64 unsigned __int64
int main()
{

uint64 number = 86400000;
uint64 big_number = number * 600;

printf("res = %I64d\n", big_number);

return 0;
}
////////////////////////////////////////////

На экране : res = 51840000000

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1151
Joined: 19.10.07
Rank: 5
link post  Posted: 28.10.09 11:15. Post subject: дуп, попробуй так: ..


дуп, попробуй так:

#define uint64 unsigned __int64
#define uint32 unsigned __int32
int main()
{

uint32 number = 86400000;
uint64 big_number = number * 600;

printf("res = %I64d\n", big_number);

return 0;
}

Именно так в Ипполите.

Say thanks!: 0 
Profile Reply
дуп



Post №: 45
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 11:38. Post subject: Да, так не влезает. ..


Да, так не влезает.
Никогда про такое не слышал и не читал. Так и не понял почему. Даже если он при таких дефайнах неявно приводит множитель к 4-байтному типу, при чем тут результат?

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1404
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 11:50. Post subject: Результат перемножен..


Результат перемножения четырехбайтных - четырехбайтное число. потеряли точность уже в процессе умножения. Понять вроде очень просто. Чтоб в результате умножения получить 64битное - нужно один из множителей привести к 64битному виду. Ты в своем примере умножаешь 64битное, поэтому у тебя всё ОК. А GetTickCount -32 битное.

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1152
Joined: 19.10.07
Rank: 5
link post  Posted: 28.10.09 11:53. Post subject: Результат умножения ..


Результат умножения двух 32-битных чисел сперва записывается в 32-битный регистр, а уж затем значение из этого регистра записывается в 64-битную переменную. Естественно старшие разряды теряются.

Say thanks!: 0 
Profile Reply
дуп



Post №: 46
Joined: 18.03.08
Rank: -1
link post  Posted: 28.10.09 12:13. Post subject: NS пишет: А вторая ..


NS пишет:

 quote:
А вторая причина зависаний - это останавливаются часы. Надо смотреть где с разрядностью переменных накосячено.
uint64 x;
x = GetTickCount() * 1000;
В этом коде переполнение наверно действительно получается.


Вот где недоразумение. Вы то говорите глядя как в коде, а я только на пост NS. А у него здесть x uint64

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1405
Joined: 16.09.07
Rank: 6
link post  Posted: 28.10.09 12:28. Post subject: А при чем тут х? в к..


А при чем тут х? в коде вся информация есть. х Действительно uint64. И будет переполнение.

Say thanks!: 0 
Profile Reply
hardcore



Post №: 26
Joined: 09.06.08
Rank: 0
link post  Posted: 28.10.09 13:25. Post subject: Мда... Непросто все ..


Мда... Непросто все с компилятором. Подскажите пожалуйста к чему в Иппо структура type_dynamics? Ведь для хеширования есть type_hash_variated. И что за 32хбитные _7, _9, _0...? Причем первой структуры наинициализировано 16384 экземпляра, а второй, сложной, 1024.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1896
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 29.10.09 12:20. Post subject: UINT8 golo () { sta..


UINT8 golo ()
{
static int init = 0, is_pipe;
static HANDLE stdin_h;
DWORD val;

if (stdin->_cnt > 0)
return 1;
if (!init)
{
init = 1;
stdin_h = GetStdHandle (STD_INPUT_HANDLE);
is_pipe = !GetConsoleMode (stdin_h, &val);
if (!is_pipe)
{
SetConsoleMode (stdin_h, val & ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT));
FlushConsoleInputBuffer (stdin_h);
}
}
if (is_pipe)
{
if (!PeekNamedPipe (stdin_h, NULL, 0, NULL, &val, NULL))
return 1;
return val > 0;
}
else
{
GetNumberOfConsoleInputEvents (stdin_h, &val);
return val > 1;
}
return 0;
}
это ипполитовский ввод

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1897
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 29.10.09 12:22. Post subject: bool input_available..


bool input_available() {


static bool init = false, is_pipe;
static HANDLE stdin_h;
DWORD val, error;

// val = 0; // needed to make the compiler happy?

// have a look at the "local" buffer first, *this time before init (no idea if it helps)*

if (UseDebug && !init) printf("info string init=%d stdin->_cnt=%d\n",int(init),stdin->_cnt);

if (stdin->_cnt > 0) return true; // HACK: assumes FILE internals

// input init (only done once)

if (!init) {

init = true;

stdin_h = GetStdHandle(STD_INPUT_HANDLE);

if (UseDebug && (stdin_h == NULL || stdin_h == INVALID_HANDLE_VALUE)) {
error = GetLastError();
printf("info string GetStdHandle() failed, error=%d\n",error);
}

is_pipe = !GetConsoleMode(stdin_h,&val); // HACK: assumes pipe on failure

if (UseDebug) printf("info string init=%d is_pipe=%d\n",int(init),int(is_pipe));

if (UseDebug && is_pipe) { // GetConsoleMode() failed, everybody assumes pipe then
error = GetLastError();
printf("info string GetConsoleMode() failed, error=%d\n",error);
}

if (!is_pipe) {
SetConsoleMode(stdin_h,val&~(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT));
FlushConsoleInputBuffer(stdin_h); // no idea if we can lose data doing this
}
}
это фруктовый

Say thanks!: 0 
Profile Reply
kranium
VIP


Post №: 23
Joined: 17.09.09
Rank: 3

Awards: For RobboLite!
link post  Posted: 29.10.09 14:48. Post subject: source code translation


hi bankuss, and everyone-

i have completed translation of the 0.085c3 source code from Italian to common English programming terms...
i'd be happy to share it with you if you are interested...(much easier to follow if one doesn't speak Italian well)
i will begin soon to concentrate on SMP...

perhaps we can begin to work together for further development...
are you interested?

best regards-
kranium

Say thanks!: 1 
Profile Reply
Einstein UCI



Post №: 132
Joined: 13.03.09
Rank: 1
link post  Posted: 29.10.09 15:00. Post subject: Time management fix


Hi Kranium !

They are any way to fix the time management in IPPOLIT & RobboLito ?
Would be nice !

All the best,





Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1899
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 29.10.09 15:44. Post subject: kranium excellent! I..


kranium excellent! I also began to English translate, but made little

Say thanks!: 0 
Profile Reply
Azaad
Moderator


Post №: 565
Joined: 26.03.09
Rank: 5

Awards: For all the Best!!
link post  Posted: 29.10.09 16:26. Post subject: Einstein UCI writes:..


Einstein UCI writes:

 quote:
They are any way to fix the time management in IPPOLIT & RobboLito ?
Would be nice !

Einstein UCI
Try version 0.085d1

Say thanks!: 0 
Profile Reply
17
VIP


Post №: 529
Joined: 04.02.08
Rank: 8
link post  Posted: 29.10.09 18:15. Post subject: Вот еще одно мнение!..


Вот еще одно мнение! Denis P. Mendoza


Hidden text. Click here


Say thanks!: 0 
Profile Reply
kranium
VIP


Post №: 24
Joined: 17.09.09
Rank: 3

Awards: For RobboLite!
link post  Posted: 29.10.09 18:36. Post subject: RobboLite 0.085c5


hi bankuss-

http://www.chesslogik.com/

complete english translation
seems to be working well....needs much more testing

Engine Score
1: RobboLite_0085c4_0050 10.0/15
2: Rybka 3 w32 5.0/15 0=0==000==01===

no time losses in many games...not sure if my time fix is 100% though, must be tested further...

please make the source code for 0.085d1 available...
perhaps in future, all source can be available in one location

http://rapidshare.com/files/299614816/RobboLite_0085c5.rar.html

thanks to all, bankuss, NS, Wildcat, дуп, Einstein UCI, ThinkingAlot, Osipov, and anyone else contributing...

Say thanks!: 4 
Profile Reply
bankuss
Black King


Post №: 1900
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 29.10.09 19:07. Post subject: kranium пишет: plea..


kranium пишет:

 quote:
please make the source code for 0.085d1 available...
perhaps in future, all source can be available in one location



vers C --> vers D: changes in value.c
#define white_minor_stone (8<<2)
#define black_minor_stone (16<<2)

Say thanks!: 0 
Profile Reply
kranium
VIP


Post №: 26
Joined: 17.09.09
Rank: 3

Awards: For RobboLite!
link post  Posted: 29.10.09 20:05. Post subject: thanks!


bankuss пишет:

 quote:
#define white_minor_stone (8<<2)
#define black_minor_stone (16<<2)



but-
this is a time loss fix?
it has nothing to do with time management...or am i mising something?

Say thanks!: 0 
Profile Reply
никел
VIP


Post №: 272
Joined: 13.03.09
Rank: 3
link post  Posted: 29.10.09 20:14. Post subject: This is extracted fr..


This is extracted from the bugs topic on Ippolit site



Bugs
Location for workers to deposit bugs.

Current
The current version 0.085d has had no reported bugs.
Update: nodes appear negative beyond 2^31.....
info time 1075380 nodes -2145685551 nps 1998000 cpuload 999
Looks like sorvegliare.c has a TRASMISSIONE with %d rather than %lld in notizia

Fixed
RobboLito 0.085: Failings with captures (cattura) for Robbo_glue.c: fixed (Igor).
RobboLito 0.085b: Igor's "fix" was unfunctional. Fixes correctly, I hope (RP).
RobboLito 0.085c: Changed recurse in RobboBuild (failed with BPb).
RobboLito 0.085c2: Previous fix (Igor) for lazy failed. New with valu.c:
#define bianco_minore_pietra (8<<2)
#define nero_minore_pietra (16<<2)
Previous: decimating the double sinister shuffle.


Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1407
Joined: 16.09.07
Rank: 6
link post  Posted: 29.10.09 20:47. Post subject: Банкусс, нафига бало..


Банкусс, нафига бало городить весь этот огород, если достаточно было
закомментить

// if (stdin->_cnt > 0)
// return 1;
За ненадобностью, и добавить в случае консольного ввода условие на
GetNumberOfConsoleInputEvents(stdin_h, &count);
if (count &&
PeekConsoleInputA(stdin_h...

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1902
Joined: 15.07.07
Rank: 19

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 29.10.09 20:53. Post subject: NS это фабьен городи..


NS это фабьен городил, а не я. просто для примера привел код фрукта.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1409
Joined: 16.09.07
Rank: 6
link post  Posted: 30.10.09 10:48. Post subject: Я к тому что нет ник..


Я к тому что нет никакого смысла вставлять фруктовый код в Робболита.

Say thanks!: 0 
Profile Reply
дуп



Post №: 47
Joined: 18.03.08
Rank: -1
link post  Posted: 30.10.09 19:02. Post subject: char * mossa_notazio..


char * mossa_notazione (uint32 mossa, char *M)
{
int di, ai, pr;
char c[8] = "0123nbrq";

В массиве "с" не маловато ли будет 8 элементов?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1919
Joined: 15.07.07
Rank: 21

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 30.10.09 19:45. Post subject: дуп пишет: ar c = &..


дуп пишет:

 quote:
ar c[8] = "0123nbrq";

В массиве "с" не маловато ли будет 8 элементов?

присваивается именно 8, а что не так?

Say thanks!: 0 
Profile Reply
дуп



Post №: 48
Joined: 18.03.08
Rank: -1
link post  Posted: 30.10.09 20:00. Post subject: В строке "0123nb..


В строке "0123nbrq" девять символов. Девятый tipo по умолчанию '\0'. Если поменять расширение на "cpp" не скомпилируется. Компилятор выдаст ошибку "overflow" в этом месте. Хотя может тут это и не важно.

Say thanks!: 0 
Profile Reply
Osipov



Guest
Joined: 01.01.70
link post  Posted: 30.10.09 23:32. Post subject: В этой функции симво..


В этой функции символ конца строки не используется, так что можно на обращать внимания.

Между прочим, я смотрю большие проблемы вызвало распределение времени в этом странном движке. Если кому интересно, попробуйте это дело от Рыбки 3:

void time_manager(int time, int inc, char flag_togo, int movestogo)
{ int alloc;

TimeMax = (time - 2500) * 9 / 10;
if (TimeMax < 150) TimeMax = 150;
if (flag_togo) {
TimeLimit2 = ((movestogo + 2) * TimeMax) / (movestogo * 3);
alloc = ((TimeMax / movestogo) * (movestogo + 150) * 2) / 300;
if (inc > 0) alloc += inc;
}
else {
if (inc == 0) {
TimeLimit2 = TimeMax / 6;
alloc = TimeMax / 48;
}
else {
TimeLimit2 = TimeMax / 3;
if ((inc * 60) >= time) alloc = TimeMax / 30;
else alloc = TimeMax / (((time / 60) * 48 - inc * 18) / (time / 60));
if (inc > 0) alloc += inc;
}
}
TimeLimit1 = alloc;
if (TimeLimit1 > TimeMax) TimeLimit1 = TimeMax;
if (TimeLimit1 > TimeLimit2) TimeLimit1 = TimeLimit2;
}


Say thanks!: 4 
Reply
Sentinel
VIP


Post №: 14
Joined: 29.10.09
Rank: 0

Awards: For work on Iggorit
link post  Posted: 31.10.09 00:51. Post subject: Yuri, you are absolu..


Yuri, you are absolutely right.
Rybka is using this nice nonlinear aggressive function, while in Robbo it is limited to TimeMax/movestogo in the most aggressive setting. That is why Robbo is taking time linearly, and always taking less.
Also the absolute longest time Rybka can take is TimeMax*9/15, and for Robbo is TimeMax/2.

Direct example in 40 moves time control, around 15th move, Rybka allocates 0.047*TimeMax, while Robbo allocates only 0.04*TimeMax and that only in the most aggressive setting (otherwise is half of it).

This is definitively something that must be changed.

Say thanks!: 0 
Profile Reply
Bison



Post №: 104
Joined: 20.06.09
Rank: 3
link post  Posted: 02.11.09 22:54. Post subject: В этом интервью авто..


В этом интервью автор Рыбки рассказывал о WinFinder-е

 quote:
Я потратил много времени, работая над поиском в Рыбке 2.2, а WinFinder был небольшим экспериментом для некоторых моих идей. Я разрабатывал WinFinder всего пару дней, так что эта версия совершенно недоработана.
Тем не менее, концепция создания WinFinder достаточно интересна, и в третьей версии вы увидите подобную модификацию Рыбки. Если я смогу выделить хотя бы две недели на разработку Rybka 3 WinFinder, то все будет сделано как следует.


Если предположить, что корни Ипоолита (Робболита) растут из Рыбки (я в этом уверен на 99%), то возникает вопрос:
В чем именно состоит «концепция создания WinFinder»? Либо это IID, чуть более продвинутая, чем у остальных, либо использование тактической составляющей ОФ при отсечениях (см. tower_dynamics->white_encoded_xray), либо что-то еще. Интересно узнать мнение поизучавших исходники.

Say thanks!: 0 
Profile Reply
italy_numero1



Guest
Joined: 01.01.70
link post  Posted: 03.11.09 05:49. Post subject: Quote: #define white..


Quote:
#define white_minor_stone (8<<2)
#define black_minor_stone (16<<2)

another better translation for pietras is flags rather than stone



Say thanks!: 0 
Reply
kranium
VIP


Post №: 55
Joined: 17.09.09
Rank: 5

Awards: For RobboLite!
link post  Posted: 03.11.09 14:16. Post subject: Hi italy_numero1


great-
thanks, i'll make the change

Say thanks!: 1 
Profile Reply
Carotino



Post №: 3
Joined: 03.11.09
Rank: 0
link post  Posted: 04.11.09 00:25. Post subject: Hello World! I am a ..


Hello World!
I am a lover of chess and Linux, where can I download RobboLito 0.085d3 for my Linux-box? There is a make-file for it?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1937
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 04.11.09 09:01. Post subject: Carotino d3 no for l..


Carotino d3 no for linux

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1413
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 09:10. Post subject: Банкусс, а ты в D3 п..


Банкусс, а ты в D3 получение времени на timeGetTime заменил?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1939
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 04.11.09 09:15. Post subject: NS нет uint64 clock..


NS нет

uint64 clock_()
{
uint64 x;
uint64 tt = 1000;
x = GetTickCount() * tt;
return x;
}

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1414
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 09:32. Post subject: Лучше поменять, GetT..


Лучше поменять, GetTickCount() считает не время, и какие только глюки с ним не бывают...
У него одно преимущество - он быстрее, и если замена на timeGetTime не просадит NPS, то лучше заменить.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1940
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 04.11.09 10:21. Post subject: NS почитал описание ..


NS почитал описание - функции похожие, только timeGetTime более точная.
при простой вставке компиляция сразу выдает ошибку
Ошибка 1 error LNK2001: неразрешенный внешний символ "__imp_timeGetTime" utils.obj


Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1415
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 10:45. Post subject: winmm.lib ..


winmm.lib

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1416
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 10:54. Post subject: http://www.gamedev.n..


http://www.gamedev.net/community/forums/topic.asp?topic_id=437577
timeGetTime "немного точнее" - MS имеет ввиду что на некоторых системах, в некоторых условиях GetTickCount может выдавать нечто даже отдаленно не похожее на время.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1941
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 04.11.09 11:04. Post subject: сделал, скорость так..


сделал, скорость такая же. просадок не замечено.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1417
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 11:38. Post subject: Сглючило меня. Совсе..


Сглючило меня. Совсем не время выдает PerformanceCounter, GetTickCount выдает время, но с большой погрешностью.

 quote:
timeGetTime обращается к таймеру напрямую, читая из него текущее значение внутреннего счетчика.
Функция GetTickCount обращается к переменной в памяти, которая обновляется приблизительно раз в 16 мс. Приблизительно потому, что точно невозможно: в системе могут идти какие-то высокоприоритетные процессы, которые прерывать нельзя. Но в момент обновления в счетчик добавляется не 16, а столько, сколько реально набежало

.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1418
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 11:46. Post subject: http://www.gamedev.r..


http://www.gamedev.ru/code/forum/?id=121011&page=3
Тут человек проводил тесты функций получения времени на разных системах.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1419
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 12:09. Post subject: Bison пишет: В чем ..


Bison пишет:

 quote:
В чем именно состоит «концепция создания WinFinder»? Либо это IID, чуть более продвинутая, чем у остальных, либо использование тактической составляющей ОФ при отсечениях (см. tower_dynamics->white_encoded_xray), либо что-то еще. Интересно узнать мнение поизучавших исходники.


Думаю что в WF просто убраны отсечения уменьшающие тактическую силу, и добавлены продления увеличивающие. И упрощена ОФ.

Say thanks!: 0 
Profile Reply
Sentinel
VIP


Post №: 22
Joined: 29.10.09
Rank: 0

Awards: For work on Iggorit
link post  Posted: 04.11.09 18:50. Post subject: Time forfeits have n..


Time forfeits have nothing to do with GetTickCount(). Still 16ms is not precise enough, so in the next version there will be changes, I'm currently testing the code with QueryPerformanceCounter, and it seams to be working fine.
Of course, the code compatibility is gone, but something must be scarified.

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1420
Joined: 16.09.07
Rank: 8
link post  Posted: 04.11.09 21:07. Post subject: Sentinel

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1947
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 05.11.09 10:49. Post subject: сделал версию с родн..


сделал версию с родной поддержкой RB (robbobases)
и даже генератор этих таблиц скомпилялся (пришлось многопоточность вырубать)
но создание файлов таблиц надо коренным образом переписывать.
ибо файловые системы линукса и винды отличаются, что линуксу хорошо, то винде смерть
хотя он создает несколько файлов, но на генерации коня вылетает с ошибкой. (на 3-х фигурке пробую)

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 2450
Joined: 06.01.08
Rank: 25

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 05.11.09 11:02. Post subject: bankuss пишет: сдел..


bankuss пишет:

 quote:
сделал версию с родной поддержкой RB (robbobases)
и даже генератор этих таблиц скомпилялся


А ссылки будут?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1948
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 05.11.09 11:07. Post subject: Кевин смысла пока не..


Кевин смысла пока нет, файлов таблиц то нет.
да и сами таблицы еще нужно сгенерить.

Say thanks!: 0 
Profile Reply
Robborriffic



Guest
Joined: 01.01.70
link post  Posted: 06.11.09 03:13. Post subject: chesser at the ippol..


chesser at the ippolit wiki indicated it is a problem with Windows file names and uppercase and lowercase.

Say thanks!: 0 
Reply
bankuss
Black King


Post №: 1952
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 06.11.09 05:47. Post subject: Robborriffic Yes, it..


Robborriffic Yes, it is true

Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1428
Joined: 16.09.07
Rank: 8
link post  Posted: 08.11.09 10:37. Post subject: Эндшпильную оценку п..


Эндшпильную оценку подправить надо -
Два слона у ладьи (и ладьи с пешкой) не выигрывают...

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 124
Joined: 05.09.08
Rank: 2
link post  Posted: 08.11.09 17:35. Post subject: Оказывается у Robbol..


Оказывается у Robbolito поиск в Cut узлах продлевается больше, чем в PV. Причем это даже не продления, а увеличение глубины перебора при определненных условиях !

 quote:
if (altezza * 4 <= DEPTH) SINGULAR++;


В общем что-то немыслимое.

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1161
Joined: 19.10.07
Rank: 6
link post  Posted: 08.11.09 18:04. Post subject: Единственные ходы вр..


Единственные ходы вроде надо продлевать во всем дереве. Тут важнее как определять единственность хода.

Say thanks!: 0 
Profile Reply
Bison



Post №: 107
Joined: 20.06.09
Rank: 3
link post  Posted: 08.11.09 18:21. Post subject: Угу, а еще в Ипполит..


Угу, а еще в Ипполите просто космический LMR в Cut узлах

 quote:
novel_deepness = deepness - 2 + stretches - (4 + BSR (4 + sch));


Так, 20-й ход будет резаться на 4 полухода. Попробовал такую смелость в Бизоне - fail.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 125
Joined: 05.09.08
Rank: 2
link post  Posted: 08.11.09 18:44. Post subject: Я так понимаю сила R..


Я так понимаю сила Robbo как раз и состоит в хитром сочетании продлений и сокращений.
WildCat пишет:

 quote:
Единственные ходы вроде надо продлевать во всем дереве.


Полностью согласен. Или во всем, или нигде, но чтобы в Cut было, а в PV - нет, - это что-то странное!
WildCat пишет:

 quote:
Тут важнее как определять единственность хода.


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


Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 1162
Joined: 19.10.07
Rank: 6
link post  Posted: 08.11.09 20:21. Post subject: ThinkingALot но что..


ThinkingALot

 quote:
но чтобы в Cut было, а в PV - нет, - это что-то странное!


А точно в PV нет?

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 126
Joined: 05.09.08
Rank: 2
link post  Posted: 08.11.09 21:18. Post subject: Я попробавал написат..


Я попробавал написать то же самое в PV, и time management предсказуемо перестал нормально работать - второй (от корня) узел principal variation часто просчитывался на большую глубину чем первый , соответственно прога долго думала над очевидными ходами. Думаю имеет смысл протестировать 4 версии:
1) Убрать продления связанные с altezza/heigth везде.
2) Добавить их в PV, но при этом ограничить значение SINGULAR двойкой (и в PV, и в Cut): SINGULAR = MINIMUM(SINGULAR,2);
3),4) - То же, только запускать exclusion search не с параметром beta = value - DEPTH/2 (value - DEPTH, value - 2 * DEPTH), a, например, с value - 8 (value - 16, value - 32 соответственно). Может быть именно в этом причина падения рейтинга Рыбы при увеличении контроля времени.
Вообще фишка с продлениями по altezza/height усиливает тактическую зоркость, но не факт, что положительно сказывается на силе игры.
Пока после 92 партий версия 3) набирает против исходной +4 Elo: +17-16=59.

Say thanks!: 0 
Profile Reply
Renegat23
administrator


Post №: 4715
Joined: 14.07.07
Rank: 22

Awards: Молодец! Спасибо за интересный материал!!!За безудержный оптимизм!;-)
link post  Posted: 08.11.09 21:20. Post subject: ThinkingALot пишет: ..


ThinkingALot пишет:

 quote:
Пока после 92 партий версия 3) набирает против исходной +4 Elo: +17-16=59.



Смахивает на погрешность :)

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 127
Joined: 05.09.08
Rank: 2
link post  Posted: 08.11.09 21:27. Post subject: Renegat23 пишет: Th..


Renegat23 пишет:

 quote:
ThinkingALot пишет:
 цитата:
Пока после 92 партий версия 3) набирает против исходной +4 Elo: +17-16=59.
Смахивает на погрешность :)


Не -200 пунктов - уже хорошо!

Say thanks!: 0 
Profile Reply
Bison



Post №: 108
Joined: 20.06.09
Rank: 3
link post  Posted: 08.11.09 23:17. Post subject: Пожалуй, самым любоп..


Пожалуй, самым любопытным и загадочным для меня в Ипполите является чередование функций WhiteCut() (или BlackCut) и WhiteAll(). Выглядит это как-то так: PV->Cut->All->Cut->...->Slide (при depth <= 3.5 ply). Причем All() на первый взгляд кажется более строгой в плане прунинга и сокращения глубины. Зачем нужно было городить такой огород - непонятно. Версия у меня пока только такая - при итеративном углублении в корне поиска таким образом происходит чередование сторон, за одну ищутся угрозы сопернику, а другая как бы защищается. Любая найденная угроза все равно запишется в trans. Звучит, конечно, довольно бредово, примерно как совет давать программе считать на четную глубину , но другого объяснения не вижу.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 128
Joined: 05.09.08
Rank: 2
link post  Posted: 09.11.09 07:55. Post subject: Это ведь стандартная..


Это ведь стандартная фишка еще со времен Фрукта. Cut узлы лучше сильно не резать, так как это может превести к дополнительному перебору соотвествующей ветки поиска уже в PV режиме. Кстати можно попробовать схему Cut/All узлов не как во Фрукте, а как в Стрелке.



Say thanks!: 0 
Profile Reply
NS
VIP


Post №: 1444
Joined: 16.09.07
Rank: 8
link post  Posted: 09.11.09 09:56. Post subject: Это стандартная фишк..


Это стандартная фишка не со времен фрукта, а намного раньше...

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1963
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 09.11.09 16:31. Post subject: ребята обещали перед..


ребята обещали переделать генератор таблиц, для совместимости в виндой, посмотрим...

Say thanks!: 0 
Profile Reply
ms 13
moderator


Post №: 216
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 09.11.09 19:40. Post subject: Отлично работает вер..


Отлично работает версия Robbolito0.084Linux правда Kn/s выводит заоблачный,причем чем больше анализирует тем больше Kn/s

Интересно это ошибочно или реально?


Say thanks!: 0 
Profile Reply
Chessved



Post №: 37
Joined: 22.10.09
Rank: 0
link post  Posted: 09.11.09 21:00. Post subject: ms 13, можно поинтер..


ms 13,
можно поинтересоваться, как запустили движок под линуксом? Это какой GUI на скрине показан?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1965
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 09.11.09 21:08. Post subject: ms 13 в 084 есть оши..


ms 13 в 084 есть ошибка в выводе, так что это глюк )))

у меня в SCID linux роболито так и не запустился.

Say thanks!: 0 
Profile Reply
ms 13
moderator


Post №: 217
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 09.11.09 22:06. Post subject: Chessved пишет: ms ..


Chessved пишет:

 quote:
ms 13,
можно поинтересоваться, как запустили движок под линуксом? Это какой GUI на скрине показан?


bankuss пишет:

 quote:
ms 13 в 084 есть ошибка в выводе, так что это глюк )))

у меня в SCID linux роболито так и не запустился.


В SCID linux у меня тоже не запустился,вернее запустился в диспечере но анализировать не хочет.Зато отлично работаетв Shredder Classic 4 Linux впрочем как и Spike,ZappaMexico2,Fruit...но не тот gui. Было бы неплохо прикрутить все это к Xboard через Polyglot там потестировать можно, если ктото в курсе обьясните плис.Поскольку я не программист если можно скомпилируйте RobboLito0.085d.Linux



Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1967
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 09.11.09 22:12. Post subject: ms 13 пишет: можно ..


ms 13 пишет:

 quote:
можно скомпилируйте RobboLito0.085d.Linux

сам можешь сделать, в папке с исходниками набери make и жди. скомпилятся 2 проги - сам роб и генератор таблиц. все, юзай.
в системе должен стоять GCC, если нет, качни с репов.

Say thanks!: 1 
Profile Reply
ms 13
moderator


Post №: 218
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 09.11.09 22:44. Post subject: Провал уже...но ничи..


Пробовал уже...но ничиго не получилось
Главным образом последние строчки

 quote:
bits.h: Assembler messages:
bits.h:15: Error: suffix or operands invalid for `bsf'
bits.h:15: Error: suffix or operands invalid for `bsf'
bits.h:15: Error: suffix or operands invalid for `bsf'
make: *** [pila.o] Ошибка 1
ms13@ms13:~/RobboLito-0.085d$



Say thanks!: 0 
Profile Reply
Robborriffic



Guest
Joined: 01.01.70
link post  Posted: 10.11.09 03:09. Post subject: 32-bit: nyet -Dx86_6..


32-bit: nyet -Dx86_64 (DEFINITIONS in Makefile, bits.h)

Say thanks!: 1 
Reply
bankuss
Black King


Post №: 1968
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 10.11.09 05:55. Post subject: ms 13 убери из makef..


ms 13 убери из makefile строку -Dx86_64 в
DEFINITIONS = -Dx86_64 $(HAS) -DVERSION=\"$(VERSION)\" -DCON_ROBBO_BUILD
у тебя 64 хочет собраться )))

Say thanks!: 1 
Profile Reply
ms 13
moderator


Post №: 219
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 10.11.09 09:31. Post subject: bankuss огромное спа..


bankuss огромное спасибо Теперь получилось оценку правда выводит аналогично
прежней версии





Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1972
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 10.11.09 09:59. Post subject: ms 13 ты какую верси..


ms 13 ты какую версию брал? RB-1 ? в ней вывод исправлен.

иначе открой редактором файл sorvegliare.c
найди в нем:

TRASMISSIONE ("info time %d nodes %d nps %d cpuload %d\n",t, NODOS, nps * 1000,(int) ((double) u / (double) x * 1000.0));

и поставь вместо %d - %lld где time nodes и nps: info time %lld nodes %lld nps %lld
сохрани изменения
и снова make

или скачай версию RB-1, в ней исправленный генератор таблиц, как генерить в файлике описано.
3-4 фигурка сделалась шустро, 5ку не пробовал.

Say thanks!: 1 
Profile Reply
ms 13
moderator


Post №: 220
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 10.11.09 12:55. Post subject: Да ошибка исправлена..


Да ошибка исправлена

Разобрался также с READ_THIS сгенирировал 4 фигурки,запустил
генерацию 5 фигурок
Эти базы вроде можно в Окнах запускать?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1973
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 10.11.09 13:24. Post subject: ms 13 если у тебя ра..


ms 13 если у тебя расширение не с 1-й буквой у таблиц , то это переделка под винду.
я вечером проверю, как оно будет работать.

там можно и по старому генерить и по новому. (если ты скачал RB1b)

Say thanks!: 0 
Profile Reply
ms 13
moderator


Post №: 221
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 11.11.09 17:27. Post subject: Расширение с одной б..


Расширение с одной буквой.Собрал TotalBase 5 фигурки, и TripleBase 4 фигурки
Правда как их прикрутить к Roobbolito так и не понял,прописал директорию в оболочке но движок с ними не работает Hidden text. Click here
Оболочку использовал DeepShredder11Linux .Пусть простят админы за офтоп прекрасно в ней работает Rybka3Linux и ненужно заморачиватся с engineServer и с engineClient.[hideguest]Оболочка есть на форуме,но установить ее не такто просто пред установкой нужно отредактировать исполняемый файл InstallJava заменив JREARCHIVE=jre-6u3-linux-i586.bin на JREARCHIVE=jre-6u16-linux-i586.bin.После установки Java нужно отредактировать исполняемый файл DeepShredder11 заменив JREDIR=jre1.6.0_03 на JREDIR=jre1.6.0_16.После чего запустить keygen в директории.Если нет желания заморачиватся можете скачать оболочку с установленой Java DeepShredder11Linux[/hideguest]

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1983
Joined: 15.07.07
Rank: 22

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 11.11.09 17:42. Post subject: ms 13 пишет: Правда..


ms 13 пишет:

 quote:
Правда как их прикрутить к Roobbolito так и не понял

они должны быть в папке движка и все. он их автоматом видит.
можно ручками стартануть движок в консоли - там видно как он сканирует каталоги.

Say thanks!: 0 
Profile Reply
ms 13
moderator


Post №: 222
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 11.11.09 18:30. Post subject: bankuss спасибо! ска..


bankuss спасибо! сканирует и в консоли и в оболочке Hidden text. Click here
я просто их в отдельную директорию скидывал Доделаю чуть позже 5 фигурки+6 фигурки пока через VirtualBox это не реально.Можно сделать так чтобы эти базы работали в окнах?


Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1985
Joined: 15.07.07
Rank: 23

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 11.11.09 19:10. Post subject: ms 13 у меня есть ви..


ms 13 у меня есть виндовая версия с таблицами, но при достижении таблиц движок вылетает с ошибкой.
видимо линуксовый код не так корректно в винде работает. где подкручивать пока не ясно...


Say thanks!: 0 
Profile Reply
ms 13
moderator


Post №: 223
Joined: 04.10.08
Rank: 10

Awards: За книгу Номена!За продукты ChessOK! Ты гений!За аквариум 2010!
link post  Posted: 11.11.09 20:43. Post subject: Будемс ждать :sm52: ..


Будемс ждать
насчет оболочки DeepShredderLinix11 совсем забыл нужно установить еще два пакета
sun-java6-bin
ia32-sun-java6-bin


Say thanks!: 0 
Profile Reply
дуп



Post №: 50
Joined: 18.03.08
Rank: -1
link post  Posted: 14.11.09 15:05. Post subject: Вроде как хеш в Робб..


Вроде как хеш в Робболите не очень. Из любопытства захотел посмотреть на числа-идентификаторы в хеш таблице(хеш-ключи). Имеется в ввиду во время игры. Для сравнения сделал то же самое со Стрелкой. Со Стрелкой удобно, потому что и там и там хеш "фруктового" типа и число это 32-битное. В Робе называется type_zobrist.zobrist , в Стрелке entry_t.lock. Хеш 128 мб, контроль 5 мин. После 15 хода картина такая (в скобках те же показатели у Стрелки):

Всего ячеек в таблице - 8388608 (8388611).
К 15 ходу равны нулю (не востребованы) - 113728 (3627).

Еще проверил первую тысячу этих чисел на уникальность. Из тысячи 47 имеют повторы. Нули, конечно, не рассматривались. В Стрелке на 1000 нашлось только одно такое число.
Только вот не знаю, этот последний показатель говорит о коллизиях, или нет? Но в любом случае, чем их меньше тем лучше.
Партию один хрен Робболит выиграл

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 130
Joined: 05.09.08
Rank: 2
link post  Posted: 14.11.09 15:53. Post subject: дуп пишет: Еще пров..


дуп пишет:

 quote:
Еще проверил первую тысячу этих чисел на уникальность. Из тысячи 47 имеют повторы. Нули, конечно, не рассматривались. В Стрелке на 1000 нашлось только одно такое число.


О какой уникальности идет речь? Коллизии, когда идет запись позиции, уже находящейся в хэше?

Say thanks!: 0 
Profile Reply
дуп



Post №: 51
Joined: 18.03.08
Rank: -1
link post  Posted: 14.11.09 16:35. Post subject: ThinkingALot пишет: ..


ThinkingALot пишет:

 quote:
Коллизии, когда идет запись позиции, уже находящейся в хэше?


Не знаю. Что конкретно записано по тому или иному адресу я не проверял. Может быть это и не коллизии. Просто по разным адресам записан один и тот же хеш-ключ. Позиции могут быть и разными. Скорее всего так и есть. В идеале должно быть для каждой записи - свой id. Может быть то, что в Роббо это сильно не так ни о чем и не говорит. Просто мне захотелось проверить - я и проверил.


Возможно это значит, что для зобриста плохо подобраны числа.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 131
Joined: 05.09.08
Rank: 2
link post  Posted: 14.11.09 16:55. Post subject: дуп пишет: Просто п..


дуп пишет:

 quote:
Просто по разным адресам записан один и тот же хеш-ключ.


Логично. Для вычесления адреса используются младшие 32 бита DYNAMIC->zobrist, а для ключа - старшие.
Но то, что случаев совпадения 47 на 1000, - это нечто невероятное! По идее должно быть 1 на 10^9.

Say thanks!: 0 
Profile Reply
дуп



Post №: 52
Joined: 18.03.08
Rank: -1
link post  Posted: 14.11.09 17:03. Post subject: ThinkingALot пишет: ..


ThinkingALot пишет:

 quote:
Но то, что случаев совпадения 47 на 1000, - это нечто невероятное!


Ну а я о чем?
По одним адресам часто перезаписывается, а другие лежат без дела. Очень неравномерное распределение индексов(имхо). Может попробовать взять "случайные" числа из Стрелки?

Say thanks!: 0 
Profile Reply
Carotino



Post №: 22
Joined: 03.11.09
Rank: 0
link post  Posted: 22.11.09 02:00. Post subject: Bankus Здравствуйте,..


Bankus Здравствуйте, простите за мой плохой русский (я итальянская) Я хотел спросить, как активировать "размышлял" по версии Linux от Robbo. E 'возможно?
Спасибо.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 135
Joined: 05.09.08
Rank: 2
link post  Posted: 25.11.09 10:56. Post subject: Оказывается Robbolit..


Оказывается Robbolito не чистит историю при каждом вызове функции поиска. Фактически это означает, что ходы сортируются произвольным образом.

Say thanks!: 0 
Profile Reply
Bison



Post №: 115
Joined: 20.06.09
Rank: 3
link post  Posted: 25.11.09 12:47. Post subject: ThinkingALot В Иппо..


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


Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 136
Joined: 05.09.08
Rank: 2
link post  Posted: 06.12.09 14:07. Post subject: Еще две странности: ..


Еще две странности:
1) В корне, если произошла отсечка, перебор еще раз запускается с нулевым окном, но уже в PV режиме. Во всех остальных PV узлах такого нет.
2) В PV узлах значения из хэша могут возвращаться только в игровом режиме, когда ограниченно время на ход.

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 143
Joined: 05.09.08
Rank: 2
link post  Posted: 12.12.09 21:21. Post subject: Продления в Robbo оп..


Продления в Robbo определяются с помощью вызова exclusion search. При этом оценка всех ходов, кроме хода из хэша, должна быть не выше (beta - margin). В PV узлах этот margin в два раза меньше чем в Cut узлах. Я попробовал в Cut тот же margin, что и в PV (только в обычном поиске - если шах, то оставил двойной margin). По логике вещей скорость набора глубины должна была бы существенно упасть. Но она НЕ упала ! Кто-нибудь понимает, почему?

Say thanks!: 0 
Profile Reply
Bison



Post №: 120
Joined: 20.06.09
Rank: 3
link post  Posted: 12.12.09 23:13. Post subject: Возможно потому, что..


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

Say thanks!: 0 
Profile Reply
ThinkingALot
VIP


Post №: 171
Joined: 05.09.08
Rank: 2
link post  Posted: 29.12.09 19:27. Post subject: Нашел БАГ. Если доба..


Нашел БАГ. Если добавить в структуру type_dynamic переменную типа uint8, которая потом нигде не используется, то есть, по идее, не должна ни на что влиять, происходит следующее.
1) Изменяется поиск: для перебора на ту же глубину требуется другое количество узлов.
2) В определенный момент Роббо вылетает с ошибкой.
Если переменная типа uint16, то все ОК. Получается, что зачем-то необходимо двухбайтовое выравнивание.

А... понял в чем дело. Размер type_dynamic используется в move_make.c - там он предполагается равным 32-м байтам.

Say thanks!: 0 
Profile Reply
Sentinel
VIP


Post №: 77
Joined: 29.10.09
Rank: 3

Awards: For work on Iggorit
link post  Posted: 30.12.09 15:56. Post subject: ThinkingALot writes:..


ThinkingALot writes:

 quote:
Нашел БАГ. Если добавить в структуру type_dynamic переменную типа uint8, которая потом нигде не используется, то есть, по идее, не должна ни на что влиять, происходит следующее.


These dummy bytes (words) are used in hash structures for memory alignment to 64bits. It's very important thing (more then 5% in speed). I double checked it, and it's all correct.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 2397
Joined: 15.07.07
Rank: 28

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 16.01.10 17:22. Post subject: посмотрел что засыла..


посмотрел что засылает аквариум движку:
setoption name UCI_AnalyseMode value true
position startposgo infinite
stop
setoption name UCI_AnalyseMode value false
position fen ...................
go infinite
stop
setoption name UCI_AnalyseMode value false
setoption name UCI_AnalyseMode value true

и т.д.
что интересно постоянно шлет команду UCI_AnalyseMode, для перевода движка в режим анализа. Из опенсорсных ее только вяленый и глаурунг видят. рыбка-3 такой команды не знает. но это не суть.
движок тупо запускается в бесконечный режим (режим анализа) и потом прерывается командой стоп, после этого смотрит что выдал движок и пишет в дерево. вот в этом месте у айвенго где-то что-то не то. работает явно не так, как надо.


Say thanks!: 0 
Profile Reply
immortal223
administrator


Post №: 4227
Joined: 14.07.07
Rank: 70
link post  Posted: 30.01.10 16:45. Post subject: А можно ли Роббобазы..


А можно ли Роббобазы пришить другой программе с открытыми исходниками? Например Вяленому?

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 2629
Joined: 15.07.07
Rank: 31

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 10.02.10 18:17. Post subject: prefetch опция на ко..


prefetch опция на компиляторах MS VC просто напросто отсутствует, она имеется только в GСС:

"Чтобы минимизировать задержки доступа к данным и таким образом улучшить производительность, лучше всего держать данные в ближайшей к процессору памяти. Выполнение этой задачи вручную называется предварительной выборкой. GCC поддерживает предварительную выборку данных вручную с помощью встроенной функции, называемой __builtin_prefetch. Эта функция используется для помещения данных в кэш незадолго до того как они понадобятся."

так что данный ключ ничего не делает в виндозных компиляциях от MS (Visual studio). А жаль...

PS нашел аналог _m_prefetch, надо проверить...

Say thanks!: 1 
Profile Reply
chesstango



Post №: 7
Joined: 07.12.09
Rank: 0
link post  Posted: 11.02.10 01:21. Post subject: can anybody translate to english?


or is there an available place in this forun for whom we only speak and read in English???
Thx in advance.

Say thanks!: 0 
Profile Reply
onedrey



Post №: 195
Joined: 03.01.09
Rank: 4
link post  Posted: 11.02.10 01:33. Post subject: chesstango http://i..

Say thanks!: 0 
Profile Reply
Replys - 251 , page: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [new only]
Тему читают:
- user online
- user offline
All times are GMT  2 Hours. Hits today: 1
You can: smiles yes, images yes, types no, poll no
avatars yes, links on, premoderation on, edit new post no