Программа "GiveAway" в преверие возможного возрожд

Главная Форумы Шашечные программы Шашечные программы Программа "GiveAway" в преверие возможного возрожд

Просмотр 14 сообщений - с 16 по 29 (из 29 всего)
  • Автор
    Сообщения
  • #396850
    Loosseer
    Участник

    ну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще — я лично не замерял и профилированием кода не занимался в этом расчете
    например перемножение матриц
    я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
    считал несеолько раз и откинув крайние результаты остальные усреднял

    P.S. а вот многие дальнейшие события в этой ветке уже мне очевидны

    #396851
    Kallisto
    Участник

    есть небольшая — дык тока вот Каллисто демо вообще почти без баз обходится

    Нет никакой демо.
    А базы можно до 6 шашек строить. С ними должно лучше быть.

    #396852
    NS
    Участник

    ну если обращение матрица размера 75х75 происходит мнгновенно , то значит тормозило что-то еще — я лично не замерял и профилированием кода не занимался в этом расчете
    например перемножение матриц
    я брал по 10 млн тестов (все 600 млн не получалось явно из-за памяти и скорости)
    считал несеолько раз и откинув крайние результаты остальные усреднял

    Опять не понимаю. Что такое «крайние результаты»?
    Подставив для каждой позиции количества признаков и оценку получаем выражение:
    (k1*x1+k2*x2+…kn*xn-eval)^2
    где k1 — количество признаков в позиции, x1 — искомый вес признака.
    Раскрыв скобки и сложив по всем позициям получим полином второй степени. Взяв частные производные по каждому xi получим систему уравнений. Вероятность что матрица вырождена равна практически нулю. Решили уравнение (а решение одно — матрица то не вырождена :) ), получили веса признаков.
    А «крайние результаты» откуда взялись?

    #396853
    Loosseer
    Участник

    Насчет мнгновенно расчета root2:
    я лично считал 2 суток
    брал несколько раз по 10 млн позиций из 600 млн и считал для каждого набора
    из результатов откинул наборы с плохой корреляцией
    опять не понятно ?

    Вообще то вы можете перемножить мнгновенно 2 матрицы 10Мбх75 вещественных чисел двойной точности мнгновенно даже на современном компьютере, а не PIII-650 с 128 Мб где они даже в память не умещаются и надо постоянно со свопом работать?

    А вот двойной точности даже не хватало на таких матрицах — вырождались в 90% случаев из-за погрешности (отбрасовались мелкие слагаемые в конце суммирования). Пришлось юзать библиотеку с большей точностью.

    А вот мне непонятно зачем выдвигать какие-то суждения как это должно б было быть? Какие-то 32 года на расчет миллиарда позиций и мнгновенное решение root2 для 10000000х75. :?:

    6 месяцев и 1 час — вот реальные результаты реального эксперимента реализованного на практике.

    Если Тузик шел по мосту, упал в воду и утонул. Зачем обсуждать удельную массу тузика, закон Архимеда, психологическое состояние пса и возможность суицида?
    Тузик утонул — вот факт и все!
    Теперь можно только завести нового пса (лучше породы Водолаз)

    P.S. запускал расчет дебютных позиций на глубине 5 сегодня ночью
    Скорость 99.14 решенных поз.сек — дальше считайте сами 32 года или сколько надо на миллиард

    #396854
    NS
    Участник

    Вообще то вы можете перемножить мнгновенно 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 миллионов), посчитали матрицу и вектор в каждой части,и потом сложили. В каждой части аналогично.

    #396855
    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

    Я не только был готов, но и знаю как это решается. 8)

    #396856
    NS
    Участник

    Теперь уже совсем ничего не понял в вашем сообщении. Нет неточностей, нет никаких проблем в методе наименьших квадратов — не только с тем что коэффициенты (количества признаков) по 600 000 000 позициям не лезут в память, но и проблем с округлением.
    И есно имея готовые позиции с оценками нет никаких проблем очень быстро получить веса признаков. Хоть тысяча позиций, хоть миллион,хоть миллиард.

    Ссылку кривую дали. Через
    http://kasparovchess.crestbook.com/viewforum.php?id=13
    Можно нормально зайти на форум.

    #396857
    Loosseer
    Участник

    есть небольшая — дык тока вот Каллисто демо вообще почти без баз обходится

    Нет никакой демо.
    А базы можно до 6 шашек строить. С ними должно лучше быть.

    Т.е. то что я скачл с описанием как демо версия с 3-х шашечными окончаниями является полной версией!
    Это радует :)

    Я посмотрел свой код — нашел несколько косяков. Подправлю и выложу ту версию что получше будет играть после турнира в выходные.

    #396858
    Kallisto
    Участник

    Т.е. то что я скачл с описанием как демо версия с 3-х шашечными окончаниями является полной версией!
    Это радует :)

    О чем вообще речь? Нет там никаких «3-х». И откуда взялось «демо версия»?
    Меня терзают смутные сомнения что это все про какую-то другую программу. :)

    #396859
    Loosseer
    Участник

    В прошлые выходные пытался анализировать эффективность различных механизмов программы в ракурсе текущих вычислительных возможностей
    Наткнулся на низкую эффективность хеша
    Для пробы отключил его и провел матч из 10 партий
    Без vs Хеш — +8-0=2
    Немного опешил
    Всю неделю переделывал
    Отключил все вызовы хэша
    Полностью поменял его внутреннюю реализацию
    (12 байт на позицию = доска+тип хэширования+глубина+стоимость+лучший ход)
    Стал потихоньку подключать обратно
    Подключил пока не все
    С хешем считает в 2 раза быстрее
    Коэффициэнт ветвления 1.8 (это не шашки однако с 1.5)
    Думаю выложить 2 варианта программы в адном орхиве
    2003 год и 2007 beta — скоро будет на рапиде

    #396860
    Loosseer
    Участник

    программа будет выложена в 2007 году
    объем порядка 40Мб
    идут перетурбации с алгоритмами расчета — есть усиление игры
    потому и не выкладываю пока ничего
    юнешеский максимализм пока мну не покинул

    #396861
    Loosseer
    Участник

    О чем вообще речь? Нет там никаких «3-х». И откуда взялось «демо версия»?
    Меня терзают смутные сомнения что это все про какую-то другую программу. :)

    Однако жестко играет Ваша программа
    перед партией грузится с заметной задержкой
    Забирает под себя 50-99% процессора во время расчета
    С памятью таже история
    Играть на одном компе можно только первую партию — дальше все вообще уходит во владение каллисто (хотя пока у меня выбора другого нет)
    реально у меня на AMD 1500XP RAM 1024 обычно на 10-13 глубину считает, а против каллисто тока 6-8

    P.S.
    Сыграл 9 партий счет пока 5-4 (в чью пользу сами понимаете не важно)

    #396862
    plus600
    Участник

    реально у меня на AMD 1500XP RAM 1024 обычно на 10-13 глубину считает, а против каллисто тока 6-8

    Ходов или полуходов?

    #396863
    Kallisto
    Участник
    Loosseer wrote:
    Однако жестко играет Ваша программа
    перед партией грузится с заметной задержкой
    Забирает под себя 50-99% процессора во время расчета
    С памятью таже история

    Вся ЭБ грузится в память. Расчет во время хода противника можно отключить.

    А вообще лучше бы тебе было сделать движок под мою оболочку. Тогда можно было бы провести матч из нескольких сотен партий без проблем.

    plus600 wrote:
    Ходов или полуходов?

    Полуходов, конечно.

Просмотр 14 сообщений - с 16 по 29 (из 29 всего)
  • Для ответа в этой теме необходимо авторизоваться.