Ответы в темах
-
АвторСообщения
-
Loosseer
Участникесть небольшая — дык тока вот Каллисто демо вообще почти без баз обходится
Нет никакой демо.
А базы можно до 6 шашек строить. С ними должно лучше быть.Т.е. то что я скачл с описанием как демо версия с 3-х шашечными окончаниями является полной версией!
Это радует
Я посмотрел свой код — нашел несколько косяков. Подправлю и выложу ту версию что получше будет играть после турнира в выходные.
Loosseer
УчастникЭто шутка? Нет никакого перемножения матриц в методе наименьших квадратов.
Есть сумма 600 000 000 (по количеству позиций) матриц 75×75, и сумма такого-же количества векторов 1×75. А потом решение уравнения Ax+b=0, где A матрица 75×75.Квадрат разницы по каждой позиции Это xA(i)x’-xb(i)
Нам всего-лишь надо проссумировать все A(i) и все b(i), получим выражение для суммы квадратов.Чтоб не выводить готовую формулу — вот она:
…..Решение системы уравнений — моментально. Для составления время тратится на подсчет количества (если PST — то сам факт есть на этом поле/нет шашки) признаков в каждой позиции. 600 миллионов позиций, миллион позиций в секунду — 10 минут.
Потом составление матрицы — 600 000 000* 76 *76 / 2 умножений — несколько минут.
матрицу 600 000 000 хранить в памяти не нужно — достаточно сразу плюсовать посчитав количество признаков по конкретной позиции. И грузить их можно хоть по одной, хоть по 1000, хоть по 1000000.
С погрешностью бороться совсем легко — Разделили позиции на две равные части (по 300 миллионов), посчитали матрицу и вектор в каждой части,и потом сложили. В каждой части аналогично.
Уважаемый NS, думаю Вы сами найдете «мелкие» неточности в вышеуказаном.
Остальным же «неолимпиадникам» это мало интересно.
Тот путь куда скатывается обсуждение в этом форуме меня нисколько не удивило (я был готов)
Ваше мнение многие читали здесь http://www.kasparovchess.crestbook.com/viewtopic.php?id=707&p=1Я не только был готов, но и знаю как это решается.

Loosseer
УчастникНасчет мнгновенно расчета root2:
я лично считал 2 суток
брал несколько раз по 10 млн позиций из 600 млн и считал для каждого набора
из результатов откинул наборы с плохой корреляцией
опять не понятно ?Вообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?
А вот двойной точности даже не хватало на таких матрицах — вырождались в 90% случаев из-за погрешности (отбрасовались мелкие слагаемые в конце суммирования). Пришлось юзать библиотеку с большей точностью.
А вот мне непонятно зачем выдвигать какие-то суждения как это должно б было быть? Какие-то 32 года на расчет миллиарда позиций и мнгновенное решение root2 для 10000000х75.
:6 месяцев и 1 час — вот реальные результаты реального эксперимента реализованного на практике.
Если Тузик шел по мосту, упал в воду и утонул. Зачем обсуждать удельную массу тузика, закон Архимеда, психологическое состояние пса и возможность суицида?
Тузик утонул — вот факт и все!
Теперь можно только завести нового пса (лучше породы Водолаз)P.S. запускал расчет дебютных позиций на глубине 5 сегодня ночью
Скорость 99.14 решенных поз.сек — дальше считайте сами 32 года или сколько надо на миллиардLoosseer
Участникну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще — я лично не замерял и профилированием кода не занимался в этом расчете
например перемножение матриц
я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
считал несеолько раз и откинув крайние результаты остальные усреднялP.S. а вот многие дальнейшие события в этой ветке уже мне очевидны
Loosseer
УчастникЕсли в словарь помещать только последовательности одного результата, то сжатие однозначно будет лучше чем у RLE.
Не согласен — будет равная, а не лучше — просто выявится структура рядомлежащих позиций (механизм индексаци важен тут)
А вот за счет комбинирования выявится структура небольших отклонений, что и даст небольшой выигрыш
Вообще еще раз замечу, что сжатие шашек с 90% ничиьих и поддавков с их почти полным отсутствие совсем разные вещи
Пример: Сортируем позиции по балансу фигур и получаем в шашках монотонные последовательности, а в поддавки все равно будет чехарда
Сжатие шашек однозначно сильнее выходитLoosseer
УчастникНасчет словаря окончаний:
Каков был бюджет — таков и результат
при 128 Мб оперативки в 2001 супротив 2Гб у чинок еще в 1991 ловить было можно только здравый смысл
Сделал классификацию окончаний
Запустил прогон расчетов реальных позиций
Взял наиболее восстребованные классы, остальные выбросил
правило 20 — 80 еще никто не отменял
Сегодня можно посильнее базу протолкнуть — только ИМХО кэш тогда был важнее
Насчет полезности (потерял свои тесты) — есть небольшая — дык тока вот Каллисто демо вообще почти без баз обходитсяНасчет ОФ:
Моя реализация мет мин квадр требовала обращения матрицы размерности числа параметров
При размерности более 75 расчет занимал более часа
пришлось остановиться на разбиении параметров в группы и расчет внутри групп
Потом пытался уже соединить группы меж собой в окончательную сумму с коэффициентами
Тут уж коэффициэнты не считались через Root2 пришлось ручной генетикой
многи просто ушли в 0
Некоторые мешали друг другу (типа +101 -100.8 вместо ожидаемого диапазона внутри 0..1)
Как-то на глаз все равно вышло
Сейчас есть 32*2*(4стадии игры)+14+1+1+1 ~ 300P.S. прикольно написал кэш вместо хэш
— а потом подумал и правда же он важнее былLoosseer
УчастникБаза окончаний:
360 Млн «вменяемых» позиций 2-9 шашек (безранговая) — размер 36МбИ мне тоже интересно как удалось 9-фигурку запихнуть в 36 Мб. А в несжатом виде какой размер?
А насчет 21%. Семь партий — это слишком мало, чтобы делать какие-то выводы о силе игры..
полной девяткой там не пахнет
360 Млн позиций указано же
несжатый размер сами можете посчитать, с учетом того что в поддавках ничьих менее 1%, а в шашках скорее все 90%фиксированный словарь как раз генетикой и делал
взял наглаз начальный набор (256 кодов)
посчитал статистику всякую и сделал набор кодов-кандидатов (2000 шт)
ну и стал паковать словарь с попыткой замены избраного кода на алтернативный случайным образом
через месяц глянул результат, ну 10% был лучше первоначального
Хотя мне сжатие не особо и нужно было 36Мб вместо 75
Просто я под Хэш больше памяти смог забрать 64 вместо 32
а внаши дни вообще вопрос не стоит о таких цифрах
Доступ стал в 2 раза медленнее, но общая скорость упала только на 0.3%
Rar сжимает несжатый словарь до 29Мб, так что меня 36 с линейным доступом устраиваетLoosseer
УчастникЯ всё-таки никак не могу себе представить миллиард позиций.
Даже если на получение каждой позиции тратилась секунда —
Это 1000000000/3600/24/365=32 года…
Откуда взялся миллиард позиций с точной оценкой (решенных) ?Я взял первый и второй турнир по переписке
все партии загнал в список позиций до 15 хода
Получилось не помню точно , но порядка 1000
Запустил расчет для каждой на 10 секунд
И сохранял просто хеш на диск
Потом склеил все с удалением одинаковых + отрезал редкивстречающиеся = получил миллиард
Ну а потом полгода расчетов на глубине 3,4,5,6Посчиталось 60%
Шашки это огромной ничейное поле с микоскопическими ямками результативных позиций
Поддавки это тоненкое лезвия ничейного ножа (причем далеко не прямое лезвие) — шаг вправо, шаг влево и ты проигралLoosseer
Участник1) Саму программу выложить? (а исходники на родном Вам паскале не нужны?) — ответ прост — смотрим голосование
2) ручная генетика» — это как?
расчет 4-5 сложных компонентов Оф, а потом ручная доводка «полным сканированием » их весовых К
типа
считае веса полей
считаем веса еще что-то
….
потом эти компоненты меж собой комбинируем с взвешиванием коээфицентов ( да ты ж знаешь все это )Loosseer
УчастникДрузья — шибко меня туркает при чтении таких вопросов
примитивные проги от 2001 года за 4 сек говорят что ed2 победа белых
калисто вам еще быстрее найдетЯ практически готов к опубликованию доказательства того, что 1.gh4 fg5 2.h:f6 g:e5 3.cd4 … проигрывает (!). Но в этом мне нужна ваша помощь. Возможно, я что-то упустил или не рассмотрел серьезный вариант. Кто же поможет мне и «Дамире»?
В принципе чем могу помогу. Я, как теоретик (пусть и не главный) был бы очень заинтересован в опровержении хода 3.cd4. Тогда разработанные мной варианты с 3.hg3 снова станут актуальными. Сейчас сложилась уникальная ситуация: две программы оценивают критическую позицию (ход белых)
по-разному. Прежде чем двигаться дальше, необходимо выяснить, кто же ошибается. И кто виноват в ошибке: дыра в программе или человеческий фактор. В моей практике был случай, когда я проверяя свой этюд, зевнул частное побочное решение. Единственность хода белых казалась настолько очевидной, что я (mea culpa!) просто забыл проверить это при помощи базы окончаний. Истина открылась лишь спустя два года!
Я думаю, авторам противоположных доказательств следует их сверить и найти причину «разночтения». Мне кажется это не займет много времени.
P.S. Кстати, что будет если белые в позиции на диаграмме сыграют ed2?Loosseer
Участник600 000 000 позиций с расчитанным окончанием были взяты из 1000 000 000 позиций наиболеечастовстречаемых при анализе реальных партий по переписке (расчет примерно 6 месяцев)
критерий оценки эффективности и сама эффективность реализованы не были — просто статистика и результат по мин квадр — программа стаоа играть сильнее и все ( никаких оценок рейтинга ЭЛО не проводилось)P.S.
special for NS ручная геннетика присутсвовалаLoosseer
УчастникВ первой партии легко выигрывало 10. ef2!
…
Как Дамира пропустила такой ход? Мне плохо верится, что прога могла не видеть этот неглубокий вариант.Первую партию Левит проиграл
Четвертую выиграл
Сам он если пропадает то надолгониже подробно 1 партия
1.a3-b4 d6-c5 2.b4:d6 c7:e5 3.g3-f4 e5:g3 4.f2:h4 f6-g5 5.h4:f6 g7:e5.6. h2-g3 h8g7 7.b2-a3 d8-c7
8. g3-f4 (ab2! тоже выигрывало)
8. .. e5:g3 9. a1-b2 e7-f6 проигрыш после 10.ef2 g:e1 11.cd4 (последний шанс 9. .. gf2 10 .. gf6 11. ef4 тоже плачевен 1:0)
10. с3-d4 c7-d6 — самая длинная агония
11. d4-e5 f6:f2 12. g1:e3 h6-g5 — за белых dc3 либо bc3 выигрываетитог:
7. .. d8c7 проигрыш черных
но и
7. ..bc7 8.ab2 ed6 9.ef4! g:e5 10.ef2 ed4 11.c:d4 d:f4 12.fg3 .. 13. de3!
7. .. ef6 8.-//-
7. .. ed6 8.-//-
7. ..gf6 8.-//-
7. ..ed4 8.c:e5
проигрывают, а значит уже ход 6. ..h8g7 проигрышен -
АвторСообщения