Прислано kosmodrom 01-02-2011 03:57
#1
Где то год назад сменил я место жительства. Была у меня хорошая база шахматных партий, записал на флешку, флешку найти не могу. Решил создать заново, с использованием своего опыта в построении баз на сегодняшний день. Хорошо, флешки нету, но перевёз с собой диски, на одном из дисков была обнаружена чессбейсовская мегабаза-2006, с добавлением партий, актуальная по май 2007 года, насчитывающая 6,3 млн. игр! Очень хорошо, что не потерялась, поскольку там были скачаны игры Playchess-а с сайтов, которых нет давным-давно. Вспомним сайт француженки Джейн-Мишель Леконт, которая провела более 500 турниров, сайт Уильяма Фулера (Таккера) и другие. На другом диске была обнаружена база игр испанца Армандо (Футболо), ёмкостью 1,7 млн. игр, которую мне Дима Канцлер скачал в мае, а вручил в июне 2007, следовательно, в базе за май эта база не была импортирована. Уже кое-что, 8 млн. игр как-никак. Для очистки совести взял несколько игр из базы Армандо и попробовал найти в своей базе, не нашёл, значит его база не импортирована.
Далее стал вопрос о добавлении игр. Создал несколько папок на компьютере и стал, насколько позволял интернет. скачивать туда игры:
1. Папка "Playchess". Качал с нашего сайта, с сайта Спагетти. Так же в эту папку добавил игры тестирования Седатчесс, Пионерчесс и других тестеров. Всё, что накачал, добавил в базу Армандо, получилось 2,7 млн. игр.
2. Папка "люди". Конечно же твики. Как узнать, какие твики качать? В каждом твике есть игра, не имеющая ходов, там текст. Просто упорядочиваем базу по количеству игр, смотрим партии без игр, видим- твик 653 есть в наличии в базе. В 2007 году про этот момент я не знал. Хорошо, 653 твик в мегабазе импортирован, осталось скачать остальные, с 654, почти 200 твиков, дело техники. :) Всего пролучилось около 400 тыс. игр.
3. Папка "переписка". На нашем сайте есть игры, качал с сайта ИКЧФ, с сайта Альберто (Спагетти) ведут ссылки на игры по-переписке. Всего набралось более 700 тыс. игр, почти 800 тыс.
Итак, получил 4 блока игр:
1. основная база, 6,3 млн. игр, куда будут добавляться остальные игры;
2. игры плейчесс, 2,7 млн. игр
3. игры людей, 400 тыс. игр
4. игры переписочных серверов, 700 тыс. игр.
Эти блоки между собой не связаны, поэтому искать дубли игр следовало внутри каждого блока. Загрузил компьютер поиском дублей, в пределах разумного времени, в самой большой базе ночь искал дубли, три остальные- управился за следующий день. Кое-что нашёл, кое-что может и не нашёл. Вот в твиках есть дубли, кто бы мог подумать? Имена шахматистов немного по другому ставят, а игры одинаковые записываются. Кстати, если было сразу объединить и искать дубли, то время несоизмеримо возростало, практически в геометрической прогрессии, поскольку закэшировать большую базу компьютеру труднее, чем несколько мелких.
Первая попытка соединить эти блоки игр закончилась крахом. Базу то я получил, 10,1 млн. игр, размером 4,3 Гб, но компьютер часто отказывался с ней работать, если сортировать по количеству ходов, например, то шла сортировка, но затем чессбейс вылетала с ошибкой. Я давно подозревал, что у чессбейса есть лимит на работу с базами, до определённого уровня работает, а дальше- не будет. Оставался вопрос, от чего этот лимит зависит, от количества игр (например- до 10 млн) или размера базы? Логика подсказывала, что виноват размер, поскольку размер базы (4,3 Гб) больше, чем размер оперативной памяти компьютера (4Гб), то чессбейсу тяжело отправить в кэш всю базу, он заполняет оперативную память базой, пока память не закончится. Сейчас практически у всех компьютеров размер оперативной памяти 4 Гб. Следовательно, нужно уменьшить размер базы. Это можно сделать только двумя путями:
1. Уменьшить количество игр. Снова открыл каждый блок игр (я же естественно делал резервные копии каждого блока). Уменьшил немного, удалил партии людей менее 10 ходов (было- менее 5 ходов). Зачем держать в базе грубые зевки, либо гроссмейстерские ничьи? База должна давать информацию по дебюту и последующему переходу в миттельшпиль, а короткие партии малоинформативны. Игры компьютеров взял только более 20 ходов, как мы делаем с базами игр на сайте. Эти манипуляции позволили уменьшить базу почти на 100 тыс. игр. Но этого мало.
2. Удалить комментарии к играм. Комментарии- это информация, на какую глубину рыбка думала на каждом ходу, сколько времени тратила на ход, какая скорость у компьютера соперника и т.д. Эта вся информация пишется в тело игры и значительно увеличивает размер базы шахматных игр. Напомню что комментарии удаляются в меню базы правой кнопкой "мыши". Решил обойтись без комментариев ради увеличения числа игр в базе. Без комментариев чессбейс гораздо быстрее осуществляет поиск по базе игр!
После удаления комментариев начал эксплуатировать базу: пробно начал сортировать по количеству ходов, по турнирам и т.д. Всё работает! База есть! *YAHOO* Всего неделю времени потребовалось. :) Сжатый размер получился всего 1,7 Гб, разархивированный- менее 3 Гб, что вполне достаточно для компьютера с оперативной памятью в 4 Гб!
Если кто не понимает, зачем нужна такая большая база шахматных игр, расскажу, как я использовал раньше подобные базы.
Итак, большую базу шахматных игр можно использовать так:
1. При участии в шахматном турнире, для подготовки к сопернику. Сам пользовался, помогает.
2. Идёт онлайн какого-нибудь матча на плейчесс, к примеру. Сделан ход, все в чате пишут: новинка! А мы смотрим в базу и пишем: так играли много раз уже, этот ход не новинка. :)
3. Делаем дебютную книгу по этой базе партий. Играем матч в "быстрый адванс" (сойдёт и для "длинного адванса"), навроде чемпионата сайта, или фристайла. Далее выбираем редкий ход, но с хорошей статистикой. и делаем его! Соперник этот ход не знает, и он начинает яростно эксплуатировать компьютер, а у нас "все ходы записаны", мы компьютер не эксплуатируем, мы его эксплуатировали, когда создавали базу. Другими словами- так обеспечивается перевес в дебютной подготовке. Таким способом мы с Сергеем играли во фристайле.
4. Из базы игр выбираем нужные игры и создаём книгу для плейчесса!
Можно придумать и другие варианты, зачем нужна база игр, я описал только то, что применял сам.
Редактировал kosmodrom 01-02-2011 04:01
Прислано kosmodrom 01-02-2011 21:03
#6
AVP написал:
:-) инновации в действии... время слишком ценно в наше время :-)
Время в наше время? :) Твоё время дорого, а моё, получается - так себе, семечки? :D Жесть.
Андрей, все мы куда-нибудь спешим, чего то хотим достичь (обычно- денег), деньги в наших глазах, и ничего больше. Это путь белки в колесе. Такая это всё ерунда, это абсолютно тупиковый путь. Может я старомоден (на языке спешащих), но я знаю, что о вечных ценностях нельзя забывать в суете жизни. Слышал ли ты поговорку: "хочешь рассмешить Бога- расскажи ему о своих планах"?
По делу.
Я кое-что, немного, в жизни умею делать хорошо, в частности: делать дебютные книги и базы шахматных партий. Это для души, это не за деньги. Мою базу не купить ни за какие деньги, и не скачать нигде. И базу, на которую я потратил столько сил и времени- я не отдам в общий доступ,
никогда! Потому что это уже не база будет, мне придётся делать базу лучше этой, для себя. На эту базу мой компьютер потратил неделю беспрерывной работы (я то спал, компьютер- не спал, но неделю я интенсивно размышлял, как сделать хорошую базу).
У тебя хороший интернет? Есть вариант, но он потребует твоего драгоценного времени. Мне нужен хороший интернет (например- твой), я закину базу на сайт (ненавижу файлообменники), закину в папку на FTP так, что этот файл (1,7 Гб) не будет виден среди файлов сайта, но будет доступен для скачивания. После этого дадим ссылку в закрытом разделе.