Re: 6-7-фигурный эндшпильный генератор готов
break
жжжжжжжжжжжжош))))
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
break
жжжжжжжжжжжжош))))
Kirr.
Вопрос нужно разделить на две части. 1 - чем базы в формате DTM лучше чем DTC-50 или DTZ-50? 2 - наоборот, чем именно базы DTZ-50 лучше чем DTM? Если исходить из того, что базы нужны только для того, чтобы программа могла выиграть (причем по принципу "лишь бы выиграть", т.е. неважно как, пусть и с нелепыми разменами) у другой программы, которая тоже использует базы, то DTZ-50 лучше но только чуть-чуть. Почему чуть-чуть? А насколько это повысит рейтинг программы? Предположим, рейтинг программы которая играет вообще без баз - 2600. Предположим, используя 6-7-фигурные - у нее рейтинг будет 2650. Точно больше чем на 50 не повысится, т.к. многие партии заканчиваются с большим количеством фигур. Но конкретно таких ситуаций (попаданий) где будут использованы случаи, с невозможностью выиграть за 50 ходов без взятий и движений пешек - еще НАМНОГО меньше, в десятки-сотни раз! Это увеличит ее рейтинг еще максимум - на 1. Поэтому, если программа получит рейтинг 2650 по DTM, то он DTZ-50, будет 2651. А с человеком, и вообще разницы не будет, т.к. почти никто не выдержит самой идеальной игры по DTM более 50 ходов. Человеку же свойственно ошибаться. Итак, преимущество DTZ-50 - только + 1 к рейтингу и то, в случае игр программ именно с программами, тоже имеющими базы.
Ещё раз. Чем DTZ-50 лучше: 1. Таблицы DTZ-50 легче и быстрее построить, чем DTM. (Нужно меньше памяти и времени). 2. Таблицы DTZ-50 - компактнее, следовательно их легче хранить на диске (больше влезет), 3. Ими легче обмениваться, и 4. программы будут к ним быстрее обращаться, и поэтому лучше играть. 5. Таблицы DTZ-50 не выпускают выигрыш из-за правила 50 ходов, но это менее важно, чем предыдущие 4 пункта. и 6. Таблицы DTZ-50 ведут к более естественной игре (см ниже).
Если исходить из того, что базы нужны только для того, чтобы программа могла выиграть (причем по принципу "лишь бы выиграть", т.е. неважно как, пусть и с нелепыми разменами) у другой программы, которая тоже использует базы, то DTZ-50 лучше но только чуть-чуть.
Размены не нелепые, а в выигранное окончание. Это по-моему свойственно именно человеку - переходить в выигранный эндшпиль при удобной возможности, вместо того чтобы продолжать сложный миттельшпиль с возможно более быстрым выигрышем. Так в миттельшпиле легче ошибиться и всё упустить. В этом плане именно таблицы DTM порождают бесчеловечную, неестественную игру. Таблицы DTZ каждым ходом приближают размен или продвижение пешки, и каждый размен и продвижение пешки - это маленький но ощутимый шаг на пути к мату. Таблицы же DTM могут порождать серии из сотен бессмысленных с первого взгляда ходов, где человеку увидеть прогресс невозможно. Вы видели мат из 517 ходов Боржуцкого и Коновала? Вы можете на глаз сказать в чём разница между позицией на 1 ходу и позицией на 200 ходу, какая из них ближе к мату? Это пример игры по семифигурной таблице DTM. Чему-то научиться по такой таблице совершенно нереально. По таблице же DTZ можно научиться вынуждать маленькие но нужные продвижения пешек и размены.
Теперь подумаем чем DTM лучше. Предположим, я анализирую какую-нибудь свою партию или каких-нибудь гроссмейстеров. Насколько точно я сыграл в каждой позиции (или гросс сыграл)? DTM покажут правильно, точно и всегда, а DTZ-50 могут показать ерунду, которую выше уже описали. Далее, предположим, я играю с человеком, партию несколько дней, т.е. можно откладывать, дома анализировать и т.д. По DTM опять же, я вижу правильные варианты.
При использовании таблиц DTM вы никогда не сможете быть уверены могла ли быть выиграна позиция за доской или нет, так как после 50 ходов без продвижения пешек и взятий соперник остановит часы и попросит судью зафиксировать ничью. Можете анализировать хоть всю ночь, но так и не узнать выиграете вы или нет.
А пользуясь DTZ-50 я могу ухудшить свое положение! Т.е. попасть в позицию, где мне будет труднее выиграть. Я уже описал пример такого случая, вкратце повторю, может кто не читал моего поста выше. На доске (кроме королей) - белый ферзь против 3-х легких фигур, скажем коня и двух слонов. Черный король оттеснен в угол и ферзь может быстро, скажем за 5-10 ходов поставить мат, а может также выиграть коня, но тогда король черных вырвется из угла и потом нужно будет бороться с ферзем против двух слонов до мата еще 50 ходов. Базы DTM покажут всегда лучший ход, который всегда максимально улучшит положение, а DTZ-50 покажут вариант - с выигрышем коня, если его использовать то потом может, вообще выиграть не получится, т.к. человек играет неидеально.
Ну это уже совсем ерунда. Если вы пользуетесь таблицами DTZ-50, то ухудшить своё положение вы не можете никак. Разве что у вас дырявый набор таблиц. Если вы знаете что у вас набор таблиц дырявый, то возможно какие-то позиции лучше действительно играть без таблиц. Если же набор таблиц полный то после попадания в табличный эндшпиль выигрыш вы уже не упустите. Какой смысл делать табличный ход чтобы потом доигрывать самому? Игра с таблицами - по определению идеальная игра (в рамках ограничений наложенных таблицами), поэтому неидеально играющий человек тут ни при чём.
Такой эндшпиль редко встречается, я просто привел его для наглядности. На самом деле таких случаев хватает. Или вот я решил потренировать свою игру в каком-нибудь эндшпиле. Играю с программой, которая использует базы. Кажется, всё, выиграть не смогу, программа построила неприступную крепость, а базы показывают что у меня позиция выигрышная. Если я решил воспользоваться подсказкой компа, то хочу увидеть действительно наилучшие продолжения (максимально математически улучшающие положение) а DTZ-50 может показать ерунду, т.к. там принцип "лишь бы выиграть, неважно как".
Лишь бы выиграть - это всё что от вас требуется. Плюс, вы сможете отслеживать прогресс. Какой-то спор композитора с практиком получается. Нам, в общем случае, не нужно выиграть "быстро", "красиво", и т.д.. Нужно всего лишь поставить мат. Если DTZ-50 это гарантируют, а DTM - нет, то не вижу предмета спора.
Наконец, DTM можно еще использовать и для всяких математических теорий - как правильнее дать оценку позиции когда будет 8 и более фигур, т.е. сравнивая позиции 7-фигурные, можно будет классифицировать разные их особенности и строить теории всяких плюсов и минусов. Мы можем их точно сравнивать по DTM а по DTZ-50 не можем. А правило 50 ходов здесь вообще не должно учитываться, если мы хотим изучить теорию взаимодействия фигур, то должны знать случаи, когда позицию можно и за 200 ходов выиграть.
И зачем вам такая теория, если она неприменима к реальным шахматам? Теории плюсов и минусов можно отлично строить и по таблицам DTZ-50.
Поэтому базы DTM имеют бОльшую теоретическую и практическую ценность, чем увеличения рейтинга программы на 1 и то только при игре с другими программами имеющими базы. Да и чисто, больший человеческий интерес...
Теоретическую - может быть (хоть это будет и теория не шахмат а некоторой похожей игры), практическую - нет. Человеческий интерес - вот ваш главный аргумент, мне кажется. Против него, конечно, не поспоришь.
Kirr пишет:Так как таблицы DTZ-50 - компактнее, чем DTM, то обращение к ним будет быстрее, и следовательно программа сможет сделать больше обращений за единицу времени (либо с тем же количеством обращений больше посчитать самостоятельно). Что также прибавит силу игры. Именно по этой причине многие используют "битовые базы", например, Shredder и Scorpio - с ними игра сильнее, чем с DTM, несмотря на то что в DTM больше информации.
Я думаю, что битовые базы используются, т.к. выигрыш в 8 раз по месту на винчестере да и в оперативной памяти - чувствителен с финансовой точки зрения. Просто в 8 раз больше разновидностей 6-фигурных баз иметь на винчестере - это чувствуется, т.к. иначе многие базы просто отсутствовали бы (семь восьмых).
Выигрыш даже в два раза - чувствителен с финансовой точки зрения, когда речь идёт о терабайтах. Одно время у меня была вся шестифигурка Налимова. Сейчас уже не вся, так как где-то пол-терабайта пришлось стереть - понадобилось место.
Но с битовыми базами программа может и вообще не выиграть, т.к. там только выигрыши-невыигрыши хранятся, а нужно еще знать наилучший ход.
Может и не выиграть, конечно. Зато и проигрывать будет реже, так как такая программа видит дальше, и не перейдёт в проигранный эндшпиль, если сможет.
Главная и самая интересная область применения таблиц (для меня) - это не анализ собственно шести- или семи-фигурных окончаний, а анализ позиций где фигур больше, но где близок переход в такое окончание. В такой позиции (где фигур, например, 12), преимущество будет у той программы, которая сможет проверять по таблице позиции дальше от корня в её дереве перебора. Битовые базы компактнее и быстрее, поэтому использующий их движок будет раньше видеть эндшпиль, чем движок с DTM таблицами. При переходе в эндшпиль движок с битовыми базами имеет преимущество, хотя сам эндшпиль он может играть и неидеально. В целом это даёт преимещество движку с битовыми базами.
Что касается более быстрого обрашения... Во сколько полные (не битовые) базы DTZ-50 меньше чем DTM ? Думаю, процентов на 50... Базы хранятся на жестких дисках, к ним время доступа большое - около одной миллисекунды. Далее если требуется какое-нибудь значение, то кэшируется в оперативную память какой-нибудь участок (линия), таких участков может быть много. А винчестер все равно блоками читает, поэтому этот блок и записывается в ОП, потом если понадобится оттуда значение, то программа получит его уже из ОП. Принцип кэширования таков. Чем больше кэш тем следующее его увеличение дает меньшую эффективность. В процессорах тоже есть кэш и процессор к нему обращается в 10 раз быстрее чем к оперативке. Так вот сравнивали процы с кэшами отличающимися в 3 раза - а во всем остальном они были одинаковыми, разница в производительности всего на 13 % ! А у нас разница между DTZ-50 и DTM вообще маленькая. Может, на 2 % по времени программа с DTZ-50 и быстрее отработает, так это время и некритично - программы всегда все равно его с запасом используют.
1. Думаю что разница не 50%, а в разы.
2. SSD есть уже сейчас, в будущем они будут больше и дешевле.
3. Индекс-схему можно сделать такой, чтобы была некая локальность, то есть близкие позиции часто оказывались в одном блоке. Например, как я уже предлагал, разбивать таблицу с пешками на под-таблицы, проиндексированные положением пешек.
Скорость обращения - не единственное преимущество DTZ-50. Главное преимущество DTZ-50 в том, что если мы сейчас начнём генерировать 7-фигурные таблицы в этой метрике, то закончим через N лет, тогда как на генерацию таблиц DTM уйдёт может 2*N, может 3*N лет. DTZ-50 быстрее генерировать, проще хранить, и легче ими обмениваться. Но, если вы планируете сгенерировать всю семифигурку сами, удачи вам в этом деле.
Это преимущество, если честно не повысит рейтинг программы даже и на 1, а может даже понизить, т.к. если ей придется потом выигрывать на 50 ходов дольше чем по DTM - то вдруг время закончится?
Ну, не понизит рейтинг оно точно, так как если мы уже в табличном эндшпиле, то думать уже не нужно. Можно и за секунду 100 ходов сделать.
смотрите новый полнометражный программистский триллер "Таблица ошибается только однажды..."
смотрите новый полнометражный программистский триллер "Правильно составленная таблица не ошибается никогда..."
жалуется же народ --
Я из спортивного интереса решил прогнать первое, что пришло в голову (BBNN-Q). Декларирован длиннейший мат в 162 хода. Что видим? Первые 127 ходов идут сверхтонкие манёвры, оценить которые белковый разум не в силах. В результате белые съедают ферзя. Ура! Но после этого, вместо того, чтобы поставить мат хода в четыре, они последовательно отдают пару фигур (не слонов, к счастью) и ставят мат в 35 ходов. Так стоит ли доверять остальным "длиннейшим выигрышам"? Шарлатанством попахивает...
Это не я написал. Если уж размениваться, то не лишь бы как, а в младшие эндшпили, ведущие к ускорению мата и действительно к упрощению игры. (DTZ-50 которые там использованы видно, этого не придерживаются. Так можно разменяться в позицию с 200 ходами до выигрыша вместо того чтобы находится в более-фигурной с 20 ходами.) А когда можно поставить мат в 5 ходов а прога это не видит а разменивается с 50 ходами дальнейшей борьбы - это не хорошо.
Отредактировано Skipper_NORTON (15/01/2009 21:18:13)
Это по-моему свойственно именно человеку - переходить в выигранный эндшпиль при удобной возможности, вместо того чтобы продолжать сложный миттельшпиль с возможно более быстрым выигрышем. Так в миттельшпиле легче ошибиться и всё упустить. В этом плане именно таблицы DTM порождают бесчеловечную, неестественную игру. Таблицы DTZ каждым ходом приближают размен или продвижение пешки, и каждый размен и продвижение пешки - это маленький но ощутимый шаг на пути к мату.
Kirr
Вот с этим никак не могу согласиться. По DTM как раз и получается самая сильная игра, ведущая к почти наибыстрейшему размену в наилучший эндшпиль. В ПОДАВЛЯЮЩЕМ большинстве случаев если по DTM произойдет выгодный размен скажем, через 50 ходов, то по DTZ-50 он произойдет может, через 48-49 ходов. Но никак НЕ НАМНОГО раньше. А вот то что DTZ-50 могут породить размен В БОЛЕЕ ТРУДНУЮ позицию, с более длинным позже выигрышем, пусть и с меньшим количеством фигур - гораздо большая проблема.
Короче лучше всего DTM-50 строить. И правило 50 ходов будет не помеха, и игра наилучшая.
Отредактировано Skipper_NORTON (15/01/2009 21:21:52)
Что-нить новенькое?
Нового пока нет. Делаю 3-ю версию, получается только по выходным, т.к. в обычные дни - после работы уже трудно за что-то браться. Да и выходные иногда заняты. А работы там еще немало.
Или топикстартер шутит или я чего то не понял, но генератор 5-6 фигурных окончаний я использую уже лет 5.
Он строит Налимовские базы.
Вот скриншот быстренько состряпал - построены окончания KnnnKn - чуть больше 4 часов. KnnnKp - 26 часов.
Он также строит и 7 фигуры если ваше железо к этому распологает.
Сейчс строится KrbbKq - около 25 часов примерное время.
второй скриншот
Он также строит и 7 фигуры
7-ми фигурного Налимовского генератора баз пока еще нет. Или вам сам Евгений подогнал новую версию?
7-ми фигурного Налимовского генератора баз пока еще нет.
Да если бы даже генератор и был, все равно эти базы нельзя было бы на данный момент использовать. Существует много движков, которые поддерживают 6-фигурные базы в формате Налимова, но нету движков, которые могли бы поддерживать 7-фигурные базы. А поддержка 7-фигурных будет сделана только тогда, когда эти базы кто-нибудь ПОСТРОИТ. Если изменить генератор Налимова, чтобы он мог построить 7-фигурные базы, то для того чтобы он их построил... за приемлемые сроки, скажем за 5 лет - нужны дорогие компьютеры, и таких компьютеров должно быть МНОГО, и такой проект обойдется возможно, в 10 миллионов долларов.
Чем более совершенный генератор баз (чем быстрее строит, чем меньше требует оперативной памяти и свободного места на диске), тем менее дорогостоящим становится процесс построения всех 7-фигурных баз.
А тут есть же люди с доступом к суперкомпам вроде как?)
Ну что ж... Пришли хорошие идеи, как улучшить мою 3-ю версию генератора (станет побыстрее работать, и меньше свободного места на винчестере требовать). Поэтому, придется еще потестировать генератор и после этих изменений. В интернет на свой сайтик я выложу его немного позже чем планировал - т.е. через пару месяцев.
Друзья, уже сгенерил треть 6-фигурок и тут задался вопросом: "А чо так медленно??" Эндшпиль krrknn генерился 3 часа 25 минут!...
Налимовскому генератору (которым я и пользуюсь) в параметрах задается число ядер, но работает у меня он только при параметре 1 или 2 ядра.
Может уже есть патчик на многопоточность?
Кто в теме, просвятите.
ЗЫ: моя система Win7 64 bit + i7 930@3.3Ghz + 6Gb DDR III
[ Сгенерировано за 0,074 секунд(ы), выполнено 10 запросов ]