Наконец-то "руки дошли" до обещанной мной личной проверки различных го программ.
Тесты проводились на 4-х ядерном ПК с 16ГБ ОЗУ (каждой программе выделялось по 2 ядра и по 8ГБ ОЗУ максимум).
Выбор программ определён в первую очередь по [
www.computer-go.info] и частично по [
www.computer-go.info].
0) Crazy - CrazyStone: нашёл только [
remi.coulom.free.fr]
(представляет собой, судя по всему, просто базу данных партий - использовала на всю игру всего несколько десятков секунд и проиграла даже GNUGo - в дальнейшем не упоминается).
1) GNUGo - GNUGo v3.8: [
ftp.gnu.org]
компилировалась с параметрами:--enable-cache-size=2048 --enable-level=12 --enable-semeai-node-limit=954437176 --enable-owl-node-limit=954437176 --enable-chinese-rules
запускалась с параметрами: -S -t --profile-patterns --showtime --showscore -D 27 -B 22 -F 17 -K 18 --branch-depth 23 --backfill2-depth 15 --break-chain-depth 17 --superstring-depth 15 --aa-depth 16 --owl-distrust 15 --owl-branch 17 --owl-reading 30
(выбрана только для отсева слабых программ).
2) MFGo - Many Faces of Go v12: [
www.smart-games.com] (http://www.crack.ms/cracks/crack.ms?id=2492824 - ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ ПОЛНОСИЛЬНОЙ ВЕРСИИ)
запускалась с параметрами: BaseTime 6:00; Periods 381; Stones 1; Time 0:02; 2 Kyu; Indicate Atari
3) MoGo - MoGo v3.0.0: [
www.lri.fr]
4) MoGoM - MoGo v3.0.0 модифицированная с базами данных партий: [
www.lri.fr]
5) MoGo4 - MoGo v4.86 с базами данных партий, причём добавлены из v3.0.0 нехватавшие: [
scm.gforge.inria.fr] (требуется авторизация, экспортируется с помощью, например, kdesvn)
компилируется командами: make clean; make noMpi
3-5)параметры запуска: --19 --time 120 --pondering 1 --nbThreads 2 --collectorLimitTreeSize 1000000 --earlyCut 0 (c GNUGo --earlyCut 1; c FueGo без --earlyCut)
(для подключения баз программы должны запускаться из папки с ними или эта папка должна быть указана как рабочая - на GTP консоль при запуске программы тогда будут выдаваться ненулевые значения их количеств).
6) FueGo - FueGo v0.4.1: [
sourceforge.net]
компилировал (как указано на сайте) с параметром: --with-boost-libdir=/usr/lib64
запускалась с параметрами: -config {full_path_config_file}
где содержимое этого файла конфигурации:
uct_param_search number_threads 2
uct_param_search lock_free 1
uct_max_memory 8000000000
uct_param_player reuse_subtree 1
uct_param_player ponder 1
go_param timelimit 120
uct_param_globalsearch live_gfx 1
uct_param_globalsearch territory_statistics 1
uct_param_search live_gfx sequence
uct_param_search live_gfx_interval 9000
РЕЗУЛЬТАТЫ:
1) MFGo-GNUGo
2-0 4:42:05-3:08:26 и 4:26:20-4:42:08
2) MoGo-GNUGo
2-0 33:13-2:50:36 и 40:37-3:10:42
3) MoGoM-GNUGo
2-0 1:19:51-2:26:50 и 54:52-1:29:58
4) FueGo-GNUGo
2-0 2:35:48-2:20:46 и 2:44:15-2:31:26
5) MoGo4-GNUGo
2-0 1:04:14-1:39:52 и 56:08-1:35:23
6) MoGo-MFGo
1-1 2:25:22-3:59:12 и 1:43:57-2:04:51
7) FueGo-MFGo
2-0 1:23:44-2:15:55 и 3:10:20-3:20:18
8) MoGoM-MFGo
2-0 2:40:57-2:30:24 и 2:30:49-3:00:16
9) FueGo-MoGo
2-0 1:33:38-1:41:17 и 2:59:24-2:45:06
10)MoGoM-FueGo
2-0 2:59:59-2:34:34 и 2:24:47-2:15:38
11)MoGoM-MoGo
2-0 3:19:48-3:24:15 и 3:23:11-3:16:30
12)MoGo4-MFGo
2-0 3:34:23-4:18:15 и 3:50:09-5:30:33
13)MoGo4-MoGo
3-(1) 3:24:55-3:15:37 2:22:47-2:19:31 3:11:36-3:05:26 (4:26:38-4:12:53)
14)MoGo4-FueGo
B-W 2-0 2:43:26-2:28:52 2:47:26-2:23:08
W-B 2-0 2:13:15-2:22:43 2:02:48-2:23:07
15)MoGo4-MoGoM
B-W 1-(3) 2:20:21-2:20:09 (3:10:17-3:10:05 3:05:03-3:05:05 4:23:07-4:22:00)
W-B 8-(6) 4:25:29-4:32:04 3:36:18-3:39:40 3:09:13-3:12:08 3:30:09-3:33:03 4:01:52-4:05:23 3:38:51-3:42:07 3:30:33-3:33:03 4:28:21-4:31:45 (3:15:42-3:17:07 4:30:03-4:30:09 3:21:41-3:22:21 3:54:26-3:54:50 3:51:08-3:52:38 5:05:05-5:05:09)
ПРИМЕЧАНИЕ. Все игры проводились по китайским правилам. Последние 2 матча проводились до преимущества 1 из программ в 2 очка за каждый цвет с ежепартийным чередованием значений коми 6,5 и 7,5.
Некоторые мои комментарии.
1) По сравнению с MoGo в MoGoM&MoGo4 (кроме использования баз данных партий):
nbThreads увеличен до 16; collectorLimitTreeSize увеличен до >2000000 (по 7,5ГБ памяти на 1000000, т.е.: если установлено 16ГБ, то использовать 2млн., если 8ГБ - 1млн., если меньше - уменьшать на ~0,3млн. на каждые недостающие 2ГБ).
Вообще, устанавливать использование памяти в поддерживающих это программах (например, uct_max_memory в fuego) следует, исходя из расчёта: объём доступной физической памяти минус ~1ГБ на GoGUI, а потоков (threads) - максимум (правда, fuego запускается и при, например, 1024, но вскоре система зависает - рекомендую 64, по крайней мере, на 4 ядрах - даст прирост производительности ~1%, а MoGo - только при --time более ~30).
2) Вообще, наблюдается явная зависимость силы игры программы от её возможности использовать вычислительные ресурсы и Монте-Карло алгоритм:
GNUGo потому и использовалась только для отбора программ (причём играла белыми с коми 7,5; чёрными - коми 6,5), что: на доске 19х19 не использует Монте-Карло; не поддерживает МП режим; использует не более 25МБ памяти (несмотря на то, что скомпилирована использовать кеша 2 (а в первый раз, вообще, - 8) ГБ); без режима pondering; не умеет нормально использовать время (например, --clock 20000 --byo-time 120 --byo-period 1 --autolevel приводит к ухудшению даже по сравнению с уровнем по умолчанию, несмотря на многократное увеличение времени на игру);
MFGo использует памяти <0,5ГБ; является 32 разрядной; без pondering; к тому же не сдаётся практически до самого конца, глючит таймер, нормально не поддерживает стандартный GTP режим, не портирована на самую распространяемую в настоящее время ОС; и за всё такое добро ещё и платить нужно...;
Недостаток MoGo - чисто Монте-Карло алгоритм без баз данных партий.
Я так и не понял, в чём заключается различие между MoGoM и MoGo4, кроме названий их версий, хотя один из разработчиков утверждает:
"
The differences are at least the followings:
- recent versions of mogo (with or without the TW) have some careful random diversification in the Monte-Carlo part which makes it much stronger in 19x19 for reasonnably long time settings. The difference is negligible for 1s per move, and should be visible clearly at around 30s/move on one core (far less than that if you use multiple threads on a multicore machine and/or MPI).
- recent versions of mogo contain some nakade heuristics which make a big difference in 9x9 for reasonnably long time settings (even on a multi-core the difference is clear with just a few seconds per move)
- recent versions of mogo include a consistency modification which avoids some rare bad cases.
I probably forgot many differences, these are the main ones.
"
P.S. Вы сможете помочь выявить более объективный рейтинг го программ, если предоставите прямую ссылку на скачивание Zengg (или, хотя бы, на Zen, играющую, как говорят, на ~1,5 камня слабее, или полносильный триал её коммерческой версии Tencho no Igo). Заранее благодарю.