Главная › Форумы › Шашечные программы › Шашечные программы › Программа "GiveAway" в преверие возможного возрожд
- В этой теме 28 ответов, 5 участников, последнее обновление 16 лет, 9 месяцев назад сделано Kallisto.
-
АвторСообщения
-
06.11.2007 в 22:18 #396850LoosseerУчастник
ну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще — я лично не замерял и профилированием кода не занимался в этом расчете
например перемножение матриц
я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
считал несеолько раз и откинув крайние результаты остальные усреднялP.S. а вот многие дальнейшие события в этой ветке уже мне очевидны
07.11.2007 в 05:40 #396851KallistoУчастникесть небольшая — дык тока вот Каллисто демо вообще почти без баз обходится
Нет никакой демо.
А базы можно до 6 шашек строить. С ними должно лучше быть.07.11.2007 в 07:03 #396852NSУчастникну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще — я лично не замерял и профилированием кода не занимался в этом расчете
например перемножение матриц
я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
считал несеолько раз и откинув крайние результаты остальные усреднялОпять не понимаю. Что такое «крайние результаты»?
Подставив для каждой позиции количества признаков и оценку получаем выражение:
(k1*x1+k2*x2+…kn*xn-eval)^2
где k1 — количество признаков в позиции, x1 — искомый вес признака.
Раскрыв скобки и сложив по всем позициям получим полином второй степени. Взяв частные производные по каждому xi получим систему уравнений. Вероятность что матрица вырождена равна практически нулю. Решили уравнение (а решение одно — матрица то не вырождена ), получили веса признаков.
А «крайние результаты» откуда взялись?07.11.2007 в 11:15 #396853LoosseerУчастникНасчет мнгновенно расчета root2:
я лично считал 2 суток
брал несколько раз по 10 млн позиций из 600 млн и считал для каждого набора
из результатов откинул наборы с плохой корреляцией
опять не понятно ?Вообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?
А вот двойной точности даже не хватало на таких матрицах — вырождались в 90% случаев из-за погрешности (отбрасовались мелкие слагаемые в конце суммирования). Пришлось юзать библиотеку с большей точностью.
А вот мне непонятно зачем выдвигать какие-то суждения как это должно б было быть? Какие-то 32 года на расчет миллиарда позиций и мнгновенное решение root2 для 10000000х75. :
6 месяцев и 1 час — вот реальные результаты реального эксперимента реализованного на практике.
Если Тузик шел по мосту, упал в воду и утонул. Зачем обсуждать удельную массу тузика, закон Архимеда, психологическое состояние пса и возможность суицида?
Тузик утонул — вот факт и все!
Теперь можно только завести нового пса (лучше породы Водолаз)P.S. запускал расчет дебютных позиций на глубине 5 сегодня ночью
Скорость 99.14 решенных поз.сек — дальше считайте сами 32 года или сколько надо на миллиард07.11.2007 в 11:31 #396854NSУчастникВообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?
Это шутка? Нет никакого перемножения матриц в методе наименьших квадратов.
Есть сумма 600 000 000 (по количеству позиций) матриц 75×75, и сумма такого-же количества векторов 1×75. А потом решение уравнения Ax+b=0, где A матрица 75×75.Квадрат разницы по каждой позиции Это xA(i)x’-xb(i)
Нам всего-лишь надо проссумировать все A(i) и все b(i), получим выражение для суммы квадратов.Чтоб не выводить готовую формулу — вот она:
http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2Решение системы уравнений — моментально. Для составления время тратится на подсчет количества (если PST — то сам факт есть на этом поле/нет шашки) признаков в каждой позиции. 600 миллионов позиций, миллион позиций в секунду — 10 минут.
Потом составление матрицы — 600 000 000* 76 *76 / 2 умножений — несколько минут.
матрицу 600 000 000 хранить в памяти не нужно — достаточно сразу плюсовать посчитав количество признаков по конкретной позиции. И грузить их можно хоть по одной, хоть по 1000, хоть по 1000000.
С погрешностью бороться совсем легко — Разделили позиции на две равные части (по 300 миллионов), посчитали матрицу и вектор в каждой части,и потом сложили. В каждой части аналогично.
07.11.2007 в 13:24 #396855LoosseerУчастникЭто шутка? Нет никакого перемножения матриц в методе наименьших квадратов.
Есть сумма 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Я не только был готов, но и знаю как это решается.
07.11.2007 в 13:31 #396856NSУчастникТеперь уже совсем ничего не понял в вашем сообщении. Нет неточностей, нет никаких проблем в методе наименьших квадратов — не только с тем что коэффициенты (количества признаков) по 600 000 000 позициям не лезут в память, но и проблем с округлением.
И есно имея готовые позиции с оценками нет никаких проблем очень быстро получить веса признаков. Хоть тысяча позиций, хоть миллион,хоть миллиард.Ссылку кривую дали. Через
http://kasparovchess.crestbook.com/viewforum.php?id=13
Можно нормально зайти на форум.07.11.2007 в 13:38 #396857LoosseerУчастникесть небольшая — дык тока вот Каллисто демо вообще почти без баз обходится
Нет никакой демо.
А базы можно до 6 шашек строить. С ними должно лучше быть.Т.е. то что я скачл с описанием как демо версия с 3-х шашечными окончаниями является полной версией!
Это радуетЯ посмотрел свой код — нашел несколько косяков. Подправлю и выложу ту версию что получше будет играть после турнира в выходные.
07.11.2007 в 13:57 #396858KallistoУчастникТ.е. то что я скачл с описанием как демо версия с 3-х шашечными окончаниями является полной версией!
Это радуетО чем вообще речь? Нет там никаких «3-х». И откуда взялось «демо версия»?
Меня терзают смутные сомнения что это все про какую-то другую программу.17.11.2007 в 17:49 #396859LoosseerУчастникВ прошлые выходные пытался анализировать эффективность различных механизмов программы в ракурсе текущих вычислительных возможностей
Наткнулся на низкую эффективность хеша
Для пробы отключил его и провел матч из 10 партий
Без vs Хеш — +8-0=2
Немного опешил
Всю неделю переделывал
Отключил все вызовы хэша
Полностью поменял его внутреннюю реализацию
(12 байт на позицию = доска+тип хэширования+глубина+стоимость+лучший ход)
Стал потихоньку подключать обратно
Подключил пока не все
С хешем считает в 2 раза быстрее
Коэффициэнт ветвления 1.8 (это не шашки однако с 1.5)
Думаю выложить 2 варианта программы в адном орхиве
2003 год и 2007 beta — скоро будет на рапиде17.12.2007 в 23:18 #396860LoosseerУчастникпрограмма будет выложена в 2007 году
объем порядка 40Мб
идут перетурбации с алгоритмами расчета — есть усиление игры
потому и не выкладываю пока ничего
юнешеский максимализм пока мну не покинул17.12.2007 в 23:29 #396861LoosseerУчастникО чем вообще речь? Нет там никаких «3-х». И откуда взялось «демо версия»?
Меня терзают смутные сомнения что это все про какую-то другую программу.Однако жестко играет Ваша программа
перед партией грузится с заметной задержкой
Забирает под себя 50-99% процессора во время расчета
С памятью таже история
Играть на одном компе можно только первую партию — дальше все вообще уходит во владение каллисто (хотя пока у меня выбора другого нет)
реально у меня на AMD 1500XP RAM 1024 обычно на 10-13 глубину считает, а против каллисто тока 6-8P.S.
Сыграл 9 партий счет пока 5-4 (в чью пользу сами понимаете не важно)18.12.2007 в 07:54 #396862plus600Участникреально у меня на AMD 1500XP RAM 1024 обычно на 10-13 глубину считает, а против каллисто тока 6-8
Ходов или полуходов?
18.12.2007 в 09:01 #396863KallistoУчастникLoosseer wrote:Однако жестко играет Ваша программа
перед партией грузится с заметной задержкой
Забирает под себя 50-99% процессора во время расчета
С памятью таже историяВся ЭБ грузится в память. Расчет во время хода противника можно отключить.
А вообще лучше бы тебе было сделать движок под мою оболочку. Тогда можно было бы провести матч из нескольких сотен партий без проблем.
plus600 wrote:Ходов или полуходов?Полуходов, конечно.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.