Форум программистов, компьютерный форум, киберфорум
Статистика, теория вероятностей
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Lois
-58 / 18 / 0
Регистрация: 29.05.2013
Сообщений: 390

Теория игр- случайное число матов

30.08.2013, 03:50. Показов 1453. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может здесь есть специалисты или просто сообразительные люди. Проблема вот в чём- я придумал новый вид шахмат- рендомные шахматы, где фигуры делают рендомные ходы и придумал ряд задач на эту тему. Потом пришла в голову идея, что можно создать шахматную программу с которой можно реально играть. Идея очень проста- разыгрывается большое количество случайных партий и по количеству случайных матов определяется какой ход более оптимален. Скажем разыгрывается 10 000 партий. Один ход даёт скажем 1000 случайных матов, другой 800. Отсюда делаем вывод, что первый ход лучше и фиксируем именно его.
Далее я нашёл любителя писать шахматные программы ( причём не абы какого, а чья программа известна среди подобных любителей) . Провёл с ним переговоры, он обещал через неделю дать прогу и ... ПРОПАЛ ( хотя я знаю наверняка, что он появляется в сети). Через большое время нашёл другого подобного любителя ( причём как потом выяснил, его программа чемпион среди любителей). Произошло то же самое. Человек всё узнал и ... ПРОПАЛ.
Разумеется у меня очень большие подозрения:
1. Что идею пытаются украсть.
2. Что идея крайне ценная.
Но вот сейчас пришла в голову другая идея- если мой метод работает, то его можно использовать в любой другой сфере в теории игр. Но я эту область совсем не знаю. Может кто-то подскажет в каком направлении копать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2013, 03:50
Ответы с готовыми решениями:

Теория принятия решений Теория игр
Команды факультетов A и B определяют свои стратегии игры в первенстве университета по баскетболу. Оценивая возможности своих «запасных...

Компьютер задает случайное число от 1 до 100 человек должен угадать число
Вот задали задачу учусь в 10 классе уже поставили 4 двойки за задачи,Обьясните решение и что к чему тут. Компьютер задает случайное число...

Программа генерирует случайное двухзначное число до тех пор пока не найдется нечетное число
Программа генерирует случайное двухзначное число до тех пор пока не найдется нечетное число. После чего на экран выводится количество...

10
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
30.08.2013, 05:25
большинство просто "рандомных" партий в шахматы окончится вничью, как ни странно, из-за правила 3х повторений, или 50ти ходов без прогресса. раз уж вы поместили этот пост в теорию вероятностей, посчитайте хотябы примерное количество возможных партий. даже если предположить что ходы будут не совсем рандомными (что вообще-то нельзя делать, в задаче глобальной оптимизации), рано или поздно на доске останется небольшое количество фигур, которые будут ходить туда сюда.
кроме того, представьте себе, что всю партию один из игроков был с перевесом +20, а потом бац и отдал ферзя "по рандому" (даже если вы научите компьютер ставить мат в пару-тройку ходов... ну ладно, возьмем научные работы по просчету форсированных вариантов, и научим ставить мат аж в 20 ходов, но ведь в большинстве случаев отдадут его где нибудь в относительно спокойном мителльшпиле, или даже в эншпиле аля R,Q vs R, без форсированного мата).
Вообщем, скажу сразу что идея не нова. На этом основан нейросетевой анализ в теории игр, так что вы зря так довольны. В действиетльности количество вариантов так же велико, как если бы вы просто начали применять их все подряд, и перебирать все возможные ходы. Этого же не делают, в большинстве позиций. Могут оставить 6-10 возможных ходов, и просчитать по форсированной схеме. Не найдя чего-то полезного, или явного выйгрыша, применяют более глубокий анализ.
Цитата Сообщение от Lois Посмотреть сообщение
Далее я нашёл любителя писать шахматные программы ( причём не абы какого, а чья программа известна среди подобных любителей)
надеюсь, не Райлиха. я почему-то не могу найти ни одной его публикации, по данной тематике, хотя он вроде и окончил MIT, и программка у него весьма сильная... но такое чувство, что он не придумал ничего супер нового, а тупо скомпилировал все что придумали до него.
А вообще, исходя из количества возможных вариантов для просчета, все ваши знакомые просто зависли И отвиснут так примерно, только когда еще вселенная раз эдак 10^1000000 раз переродится, и вернется в текущее состояние

Вообще, немного усовершенствую вашу идею, чтобы вы примерно поняли что делается, когда речь идет о нейронных сетях. Возьмем базу гроссмейстеров, составим дерево решений. каждое состояние доски -- один нейрон. коэффициент связи bi в перцептроне, и если это решение привело в конечном итоге к победе, то увеличивается этот коэффициент bi, если нет, уменьшается. Такую сеть можно будет составлять довольно быстро и дополнять, и при этом вы получите вполне приемлимые результаты: по крайней мере у вас не будет совсем глупых и бессмысленных ходов. Далее, можно подключить небольшой анализатор позиции, ввести некоторые коэффициенты для оценки и так далее. тогда быть может вы получите что-то, играющее с рейтингом 2400-2500. Далее, можно ввести что-то типа аппарата баесовых сетей для приведения неизвестных состояний к наиболее вероятно близкому теоретическому, и выбирать наилучший ход по ней. Впрочем, я почти уверен, что примерно такие идеи как раз и реализованы в той же рыбке, крафте, фрице и прочих (что там сейчас популярно?)
Чтобы придумать действительно что-то новое, прочитайте о том, что уже придумало в данной области -- вероятно, оно вдохновит вас на новые открытия

Добавлено через 4 минуты
ПС. начните с работ ботвинника, если найдете. там основы и самое простое. я кажется, встречал в какой-то его книге
0
 Аватар для Lois
-58 / 18 / 0
Регистрация: 29.05.2013
Сообщений: 390
30.08.2013, 12:51  [ТС]
А вообще, исходя из количества возможных вариантов для просчета, все ваши знакомые просто зависли И отвиснут так примерно, только когда еще вселенная раз эдак 10^1000000 раз переродится, и вернется в текущее состояние

Вообще же, насколько я разбираюсь в программировании, такая программа пишется за пару часов. Что случилось с программистами не ясно до конца. Ну сказали бы, что программа нерабочая и никаких бы проблем не было. Правда есть вариант, что люди начали комбинировать методы и что-то исследовать и на чём-то там зациклились. Но вообще в любом случае странно, что люди пропали. Самое разумное объяснение- что это как-то связано с воровством. Относительно других вариантов, скажем посадить гроссмейстеров, то не ясно куда их сажать и зачем. Насколько я знаю в программах коммерческих используются огромные базы игр гроссмейстеров.
Относительно новизны метода, то я думаю любители должны бы знать какие методы есть и если бы мой метод использовался, то они бы так и сказали... .
0
30.08.2013, 14:39

Не по теме:

И почему мании величия часто сопутствует мания преследования? :pardon:
Если ТС может написать такую программу за пару часов - то что ему мешает? С таким потенциалом он любой язык программирования выучит за 5 минут :) Кстати - я не верю в крутых шахматных программистов, взявшихся за реализацию этой безнадежной идеи (ибо то, что для шахмат она безнадежна знали лет 50 назад).

0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
30.08.2013, 14:43
Цитата Сообщение от Lois Посмотреть сообщение
Вообще же, насколько я разбираюсь в программировании, такая программа пишется за пару часов.
я конечно не буду спорить, но чтобы с этой программой потом хоть как-то хоть что-то можно было сделать, я очень сомневаюсь что ее можно написать за пару часов. по крайней мере я не смогу точно, на данный момент. и более того, мне неизвестно ни одного человека, который знает все тонкости всех шахматных правил, который только их сможет закодировать.
Подумайте. Разработчику нужно, как минимум:
  • Досканально изучить все шазхматные правила, в т.ч. взятие на проходе, правила повторения позиции (в том числе есть циклические, т.е. это не просто туда сюда три хода подряд, это могут быть серии из 3х и более ходов), 50 ходов без прогресса, невозможность совершить ход, когда есть шах, рокировки, невозможность рокировки через битое поле (отметаем b1,b8, естественно, программист может подзабыть об этом). Но допустим, у меня 1ый разряд есть, я их все знаю, вроде как... Хотя рандомные позиции могут быть очень нестандартные и я могу что-то упустить.
  • Придумать внутреннее представление. По каким законам движутся фигуры, как описывать их движения, что есть рандом

    Не по теме:

    учесть особенность, что нельзя например, брать два рандома подряд -- рандомную фигуру ставить на рандомную клетку. В соответствии с центральной предельной теоремой, распределение станет стремиться к нормальному, и мы чаще будем повторять одни ходы, чем другие.

    Кажется, мелочь, но вы прикинтье это представление... Говоря математическим языком, нужна функция f(x, S), где x -- некоторое число (ну тот самый рандом), а S -- текущее состояние позиции на доске (с учетом того, сколько ходов повторилось, ходил ли король, ходили ли ладьи, чтобы знать, можно ли сделать рокировку), попробуйте просто прикинуть, что должно быть в этой функции...
  • Придумать представление, в котором записывать выходную информацию. Это не совсем число. Состояние явно можно сжать, ибо уже при тысяче партий вы получите множество позиций, а позиции между ходами различаются всего-то чуть чуть. Нужно подумать над тем, как потом вы собираетесь анализировать полученную информацию, и вообще, что собираетесь с ней делать. На это уйдет много времени.
Ну вот собственно, это основные вопросы. Но я умалкиваю про то, что надо договориться о терминологии, о языке разработки, о среде, в которой все это должно выполняться... Думаете, нафиг все это решать? А нафиг тогда писать "простую" программу "за два часа"

Не по теме:

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

чтобы потом ее просто выкинуть, и начать писать все заново? а не жаль времени?
Цитата Сообщение от Lois Посмотреть сообщение
Относительно других вариантов, скажем посадить гроссмейстеров, то не ясно куда их сажать и зачем.
я сказал, кажется,
Цитата Сообщение от NEbO Посмотреть сообщение
Возьмем базу гроссмейстеров
имел ввиду базу партий гросмейстеров. причем тех партий, где они не зевали в дебюте или миттельшпиле

Не по теме:

такие тоже иногда бывают, поверьте, правда, довольно редко, но их все равно нужно отсеять по каким-то критериям. У того же Ботвинника было пару партий с комментами "и тут я понял, что мой противник решил мне зевнуть фигуру..." и на 10-15 ходу сдался.

также, вероятно, стоит убрать сеансы (особенно те, что даются вслепую), и, вероятно, больше уделить внимания современным партиям по переписке. Однако таких партий относительно немного... Вообщем, нужны какие-то комплексные критерии, для отбора "хороших" партий
А базы есть, разумеется, о чем я собственно и говорю. Они огромны, там партий -- начиная с Филидора, и заканчивая Анандом, Топаловым, Каспаровым, и др. И ежу ясно, что рыбки с фрицами их юзают по самое небалуйся, вопрос лишь в том, как правильно их использовать. Для этого я вам и предлагаю почитать публикации на эту тему.

Я не имею понятия, почему ваши знакомые вам не отвечают. но если они не совсем дураки, я не думаю, что они всерьез заняты подобной идеей. Обычно, все таки те, кто писал движок, должны разбираться в комбинаторике и представлять количество вариантов... А про то, что они зависли -- так я пошутил
В конце концов, если вы разбираетесь в программировании, и уверены, что можно написать за пару часов, зачем с кем-то было делиться этой идеей? взяли бы да написали. я представляю, сколько это потребует работы, а также понимаю, что в таком варианте это бесполезно. У меня у самого были когда-то подобные идеи, когда я занимался шахматами. Но, кажется, уже тогда я понимал, что бесполезно пытаться решить именно таким образом. Кажется, эту тему затрагивал еще Перельман (не, не тот, что Григорий. тот был Яков) в "Занимательной алгебре"

Не по теме:

очень классная книжка, и легко читается, кстати, рекомендую! :)

что-то там было связано с грубым подсчетом количества партий до 40го хода...
вот, кстати, если не верите, пожалуй Перельман говорил примерно об этом: http://ru.wikipedia.org/wiki/%... 0%BD%D0%B0
Однако, 10^120 это крошечная часть того, что получится после 40х ходов, в эндшпиле, там может быть огромное количество простых повторений. И программа, работающая рандомно, по сути будет вычислять, идти лишь по одному из этих путей... Может я и переборщил с 10^100000, но наврядли там будет меньше 10^1000. ну и в любом случае, я как-то задумывался и подсчитывал, за сколько смогут написать "обезьяны" из известной проблемы, если бы они были электронами, печатали бы со скоростью света, распространенные по всему объему Вселенной (погуглил и выбрал самое большое число, которое нашел), один из томов Войны и мира. Оказалось, что то около 10^50 раз должна переродиться Вселенная (ну всмысле, нашел, сколько она должна существовать, и поделил полученное время на вот это число). Если интересно, операции выполнял над длинными числами, получил даже вполне себе точный результат но вы хотябы можете представить себе время, на 10 триллионов перерождений вселенной? ок, тогда умножьте это на 10^40 и получите примерно то, что получил я...
Вообщем, экспоненциальные задачи -- они экспоненциальные. А ваш алгоритм я не представляю, как можно аппроксимировать, чтобы получить приблизительные результаты. Имхо, получится просто громаднейшее число наикривейших партий, на каждом ходу каждый из соперников 50/50 примерно будет что-то зевать... Если даже взять 10^100 партий, и представить что в одну секунду обрабатывалось бы 3e8 партий, то получите что-то типа:
Code
1
1e100 / 3e8 = 3.33e91 сек = 5,55e89 мин = 9,26e87 часов = 3,86e86 дней = 1e84 лет
1e84 лет. Не-не, не 84! И даже распараллелив на все компьюетры и суперкомпьютеры мира, даже если предположить, что сейчас существует вот такое количество процессоров (каждый из которых не забывайте, анализирует столько же партий в секнду, сколько свет проходит метров за эту же секунду) : http://ru.wikipedia.org/wiki/%... %82%D0%B0- (знаю, что есть приставки и покруче, просто не могу вспомнить) , т.е. 1e24, получите "всего-то" 1e60 лет. все равно не дотягивает хотябы до количества атомов во вселенной (представлено в той же статье в вики, про число шеннона).
Разве это недостаточно большие числа, чтобы даже и не пробовать решать эту задачу вот так вот в лоб? Не? Ну дерзайте, удачи!
0
30.08.2013, 14:49

Не по теме:

NEbO, не тратьте зря время - посмотрите темы ТС.

1
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
30.08.2013, 15:09

Не по теме:

Цитата Сообщение от zer0mail Посмотреть сообщение
ибо то, что для шахмат она безнадежна знали лет 50 назад
ну она не совсем безнадежна, как мне кажется... в том или ином виде, она наверняка применяется в современных движках, в том же переборе вариантов -- начинают счет наверняка именно с какого-то наиболее "вероятно хорошего" хода, и наверняка там расчет идет по вероятностям, впрочем как и вообще, в теории игр и принятия решений -- там же практически все отталкивается от вероятности, разве нет?
Впрочем, пожалуй, это имеет мало общего с тем, о чем говорит ТС...
проведя какую то рандомную партию, если бы получилось сделать какие-то выводы, возможно, получится применить генетический алгоритм, например. Ведь по сути это задача глобальной оптимизации... Я более менее отдаленно себе представляю лишь генетику и нейронки, первый реализовывал программно (ну на диофантовых уравнениях, конечно:-[ ), второй представляю себе вот на уровне того, что описал выше... вообще, вероятно, тут подойдет метод роя, кажется, из картинок, которые я себе представляю про муравьев, он будет более подходящим... Кажется, там тоже начинается с рандома... эх, жаль что упустил столько времени и занимался только компьютерами:) надо было еще подтягивать знания по математике:) очень интересные эти, методы глобальной оптимизации.



Добавлено через 7 минут

Не по теме:

Цитата Сообщение от zer0mail Посмотреть сообщение
посмотрите темы ТС.
мда, надеялся уйти от обыденного быдлокодерства в пхп мире, и порассуждать на тематику глобальной оптимизации, и тем более, про шахматы на форуме не так уж часто упоминают... а тут на тебе, такой облом... эх, время время...

0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
30.08.2013, 15:18
В шахматных программах ключевые элементы: оценка позиции (алгоритмы+база партий), просмотр на определенную глубину с учетом полученных позиций и полный перебор (в окончаниях). В случайной игре один зевнет ладью, другой ферзя и "жертва ладьи" будет считаться лучшим ходом .
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
30.08.2013, 15:28
Цитата Сообщение от zer0mail Посмотреть сообщение
полный перебор (в окончаниях)
я не особо увлекался окончаниями, но там где ну совсем полный перебор, там же кажется, почти все позиции сводятся к теории? вернее, не проще ли заранее просчитать и выделить какие-то базовые позиции и свести все к ним, когда на доске меньше 4-5 фигур?

Не по теме:

впрочем, поэтому, наверное, их и не любил, потому что считать много надо, и поэтому так до кмс-а и не дотянул:)



Добавлено через 3 минуты
Цитата Сообщение от zer0mail Посмотреть сообщение
оценка позиции (алгоритмы+база партий), просмотр на определенную глубину с учетом полученных позиций
все же эти классические подходы, имхо немного не то... помоему просто мало хороших программистов, разбирающихся одновременно в шахматах и в математике. особенно в последней. из шахмат то главное все правила знать, ну и основные моменты, так по мелочи... мне так почему-то кажется)
0
 Аватар для Lois
-58 / 18 / 0
Регистрация: 29.05.2013
Сообщений: 390
30.08.2013, 16:41  [ТС]
NEbO
Вы видно не совсем в курсе. Я тоже не в курсе, но знаю, что в программировании есть команда chess, где всё это реализуется в смысле правил. То есть всё уже есть, надо лишь реализовать алгоритм. Что же касается времени, то я говорил о специалистах. Один специалист написал подобное очень очень быстро. И эта программа у меня есть. Она просто разыгрывает случайные партии и определяет количество матов и патов. В принципе эта программа меня и подтолкнула, чтобы сделать играющую программу. Лично я программировал очень очень давно и весьма простые вещи, но я имею представление о сложности задач и сколько может уйти времени.
Так что Ваше объяснение почему не ответили шахматные программисты совершенно не ясно. Ну что им стоило сказать, что идея не работающая? Единственная там серьёзная проблема в самом рендоме, так как обычный рендом работает крайне медленно для решения подобных задач, но есть рендомы сделанные специально для шахмат, они работают очень очень быстро. Кстати, я в той программе, которая у меня есть сделал небольшие проверки. Скажем убирал ладью белых из начальной позиции и проверял как изменится количество случайных матов. И оно меняется( уменьшается). . Так что идея ( но это и понятно в принципе), с этой точки зрения вполне рабочая. Если хотите, я дам Вам эту программу, сами поиграете и определите. Но ещё раз повторю - там рендом крайне медленный. 10000 партий разыгрывается за 4 часа. А проограммист , который взялся за решение этой задачи сказал, что его рендом разыграет такое количество за секунду.
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
30.08.2013, 17:48
Lois, у меня нет слов
странно только, что в вашем программировании нет команды, генерирующей очень быстрые программы для любых шахматных вычислений
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2013, 17:48
Помогаю со студенческими работами здесь

Теория игр
Всем привет!! 1. ребят помогите с задачей. Компьютер задумывает 5 числе от 1 - 15, а человек вводит 5 чисел (в 5 edit) тоже 1 -15...

теория игр
Имеется две кучки конфет.в одной н штук,в другой м.каждый игрок за один ход должен съесть одну кучку,а вторую разделить на две не...

Теория игр
Платежная матрица игры задана в таблице. Определить нижнюю и верхнюю цену игры. Определить частоты применения стратегий...

Теория игр
Ребят подскажите каким способом будет удобнее создать программу: Задание: Найти стратегии игроков А, В и цену игры, заданной матрицей (с...

Теория Игр
как доказать, что если все элементы матрицы H являются целыми числами, то цена игры с матрицей H является рациональным числом


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru