О чем вообще речь? Нет там никаких "3-х". И откуда взялось "демо версия"?
Меня терзают смутные сомнения что это все про какую-то другую программу.
Однако жестко играет Ваша программа
перед партией грузится с заметной задержкой
Забирает под себя 50-99% процессора во время расчета
С памятью таже история
Играть на одном компе можно только первую партию - дальше все вообще уходит во владение каллисто (хотя пока у меня выбора другого нет)
реально у меня на AMD 1500XP RAM 1024 обычно на 10-13 глубину считает, а против каллисто тока 6-8
P.S.
Сыграл 9 партий счет пока 5-4 (в чью пользу сами понимаете не важно)
программа будет выложена в 2007 году
объем порядка 40Мб
идут перетурбации с алгоритмами расчета - есть усиление игры
потому и не выкладываю пока ничего
юнешеский максимализм пока мну не покинул
Последний раз редактировалось Loosseer в Дек 17, 2007 - 11:36 PM; всего редактировалось 1 раз
В прошлые выходные пытался анализировать эффективность различных механизмов программы в ракурсе текущих вычислительных возможностей
Наткнулся на низкую эффективность хеша
Для пробы отключил его и провел матч из 10 партий
Без vs Хеш - +8-0=2
Немного опешил
Всю неделю переделывал
Отключил все вызовы хэша
Полностью поменял его внутреннюю реализацию
(12 байт на позицию = доска+тип хэширования+глубина+стоимость+лучший ход)
Стал потихоньку подключать обратно
Подключил пока не все
С хешем считает в 2 раза быстрее
Коэффициэнт ветвления 1.8 (это не шашки однако с 1.5)
Думаю выложить 2 варианта программы в адном орхиве
2003 год и 2007 beta - скоро будет на рапиде
Зарегистрирован: Авг 22, 2006
Сообщений: 608
Откуда : Санкт-Петербург
Теперь уже совсем ничего не понял в вашем сообщении. Нет неточностей, нет никаких проблем в методе наименьших квадратов - не только с тем что коэффициенты (количества признаков) по 600 000 000 позициям не лезут в память, но и проблем с округлением.
И есно имея готовые позиции с оценками нет никаких проблем очень быстро получить веса признаков. Хоть тысяча позиций, хоть миллион,хоть миллиард.
Это шутка? Нет никакого перемножения матриц в методе наименьших квадратов.
Есть сумма 600 000 000 (по количеству позиций) матриц 75x75, и сумма такого-же количества векторов 1x75. А потом решение уравнения Ax+b=0, где A матрица 75x75.
Квадрат разницы по каждой позиции Это 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/ ... 07&p=1
Я не только был готов, но и знаю как это решается.
Последний раз редактировалось Loosseer в Нояб 07, 2007 - 01:32 PM; всего редактировалось 1 раз
NS
Тема сообщения:Отправлено: Нояб 07, 2007 - 11:31 AM
Зарегистрирован: Авг 22, 2006
Сообщений: 608
Откуда : Санкт-Петербург
Цитата:
Вообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?
Это шутка? Нет никакого перемножения матриц в методе наименьших квадратов.
Есть сумма 600 000 000 (по количеству позиций) матриц 75x75, и сумма такого-же количества векторов 1x75. А потом решение уравнения Ax+b=0, где A матрица 75x75.
Квадрат разницы по каждой позиции Это xA(i)x'-xb(i)
Нам всего-лишь надо проссумировать все A(i) и все b(i), получим выражение для суммы квадратов.
Решение системы уравнений - моментально. Для составления время тратится на подсчет количества (если PST - то сам факт есть на этом поле/нет шашки) признаков в каждой позиции. 600 миллионов позиций, миллион позиций в секунду - 10 минут.
Потом составление матрицы - 600 000 000* 76 *76 / 2 умножений - несколько минут.
матрицу 600 000 000 хранить в памяти не нужно - достаточно сразу плюсовать посчитав количество признаков по конкретной позиции. И грузить их можно хоть по одной, хоть по 1000, хоть по 1000000.
С погрешностью бороться совсем легко - Разделили позиции на две равные части (по 300 миллионов), посчитали матрицу и вектор в каждой части,и потом сложили. В каждой части аналогично.
Loosseer
Тема сообщения:Отправлено: Нояб 07, 2007 - 11:15 AM
Зарегистрирован: Нояб 03, 2007
Сообщений: 21
Насчет мнгновенно расчета root2:
я лично считал 2 суток
брал несколько раз по 10 млн позиций из 600 млн и считал для каждого набора
из результатов откинул наборы с плохой корреляцией
опять не понятно ?
Вообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?
А вот двойной точности даже не хватало на таких матрицах - вырождались в 90% случаев из-за погрешности (отбрасовались мелкие слагаемые в конце суммирования). Пришлось юзать библиотеку с большей точностью.
А вот мне непонятно зачем выдвигать какие-то суждения как это должно б было быть? Какие-то 32 года на расчет миллиарда позиций и мнгновенное решение root2 для 10000000х75.
6 месяцев и 1 час - вот реальные результаты реального эксперимента реализованного на практике.
Если Тузик шел по мосту, упал в воду и утонул. Зачем обсуждать удельную массу тузика, закон Архимеда, психологическое состояние пса и возможность суицида?
Тузик утонул - вот факт и все!
Теперь можно только завести нового пса (лучше породы Водолаз)
P.S. запускал расчет дебютных позиций на глубине 5 сегодня ночью
Скорость 99.14 решенных поз.сек - дальше считайте сами 32 года или сколько надо на миллиард
NS
Тема сообщения:Отправлено: Нояб 07, 2007 - 07:03 AM
Зарегистрирован: Авг 22, 2006
Сообщений: 608
Откуда : Санкт-Петербург
Loosseer писал(а):
ну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще - я лично не замерял и профилированием кода не занимался в этом расчете
например перемножение матриц
я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
считал несеолько раз и откинув крайние результаты остальные усреднял
Опять не понимаю. Что такое "крайние результаты"?
Подставив для каждой позиции количества признаков и оценку получаем выражение:
(k1*x1+k2*x2+...kn*xn-eval)^2
где k1 - количество признаков в позиции, x1 - искомый вес признака.
Раскрыв скобки и сложив по всем позициям получим полином второй степени. Взяв частные производные по каждому xi получим систему уравнений. Вероятность что матрица вырождена равна практически нулю. Решили уравнение (а решение одно - матрица то не вырождена ), получили веса признаков.
А "крайние результаты" откуда взялись?
Kallisto
Тема сообщения:Отправлено: Нояб 07, 2007 - 05:40 AM
Зарегистрирован: Авг 18, 2003
Сообщений: 731
Loosseer писал(а):
есть небольшая - дык тока вот Каллисто демо вообще почти без баз обходится
Нет никакой демо.
А базы можно до 6 шашек строить. С ними должно лучше быть.
ну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще - я лично не замерял и профилированием кода не занимался в этом расчете
например перемножение матриц
я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
считал несеолько раз и откинув крайние результаты остальные усреднял
P.S. а вот многие дальнейшие события в этой ветке уже мне очевидны
Зарегистрирован: Авг 22, 2006
Сообщений: 608
Откуда : Санкт-Петербург
Цитата:
Моя реализация мет мин квадр требовала обращения матрицы размерности числа параметров
При размерности более 75 расчет занимал более часа
Если линейная ОФ, то расчет 75 коэффициентов методом наименьшей суммы квадратов это решение линейной системы уравнений. 75 неизвестных, 75 уравнений. Решается хотя-бы методом гаусса. Считается моментально.