tourney.ru форумЪТрепещите, смертные! |
Вы не зашли.
Резюмирую:
Если кто-нить выпустит игру, которая будет убивать большинство игроков сразу после выхода и навсегда (например, стратегия, в которой 1 юнит сильнее всех и комп строит его быстрее всех и шлет в атаку), это будет худшая игра всех времен и народов.
Если кто-то выпустит игру, которая будет убивать меньшинство игроков, но будет "учиться", то это будет лучшая игра всех времен и народов. + настоящий прорыв в тру АИ (как результат миллионные премии от соответствующих институтов).
Ждем второго.
Offline
lets.see написал:
P1366 написал:
на практике нет даже систем хорошо предсказывающих колебания курса акций по хистори (классический пример).
у меня была курсовая по этому вопросу. могу сказать, что задача успешно решается и не одним способом (экспертные системы, ИИ, ...)
Правда? Можно мне такую у тебя купить?
З.Ы. Давай хоть немного думать, прежде чем делать такие заявляния.
Offline
lets.see написал:
P1366 да без проблем, сколько дашь?
Столько, сколько эта программа приносит тебе в месяц при торговле акциями.
Еще раз, я прекрасно знаю КАК эта проблема "успешно" решается в курсовых, дипломах и диссерах (я наблюдал именно диссер). Когда же впоследний раз (год назад) я сталкивался с софтом для реального рынка акций, там таким и не пахло. Что-то изменилось - просвети, пожалуйста
Я не говорю про то, что это нельзя сделать в принципе. Матан и компы не стоят на месте. Однако эта более простая задача - иллюстрация к сложности создания обучающихся систем (одно из направлений тру АИ)
Offline
P1366
Как человек, который будучи студентом написал простенькую программу играющую в шахматы,
считаю себя вправе поправить тебя. Можно?
Шахматные программы расчитывают все ходы, иначе они будут пропускать неочевидные решения.
Попытки Ботвинника уподобить игру компьютера человеческому мышлению показали, что этот путь сложен.
Так для чего же используется опыт?
А используется он для оценки позиций в дереве обсчета.
Понятно, что если удается считать позицию до конца, то опыт совсем не нужен.
Но если расчет идет скажем на 10 ходов, то чтобы выбрать по какому пути идти, надо оценить какая позиция выигрышная, а какая нет.
Точно это можно сказать только если досчитать до конца каждую позицию, но это невозможно.
Поэтому используется опыт человека, с помощью которого пишется оценочная функция для каждой позиции.
Естественно, в момент изобретения шахмат никакого опыта небыло, и создать шахматную программу по этому принципу было бы невозможно.
Но в настоящий момент накопленный опыт уже вполне адекватен и шахматные программы дрючат гроссмейстеров.
То же самое и с варкрафтом. Невозможно досчитать всю игру до победы, поэтому считать мы будем на один или несколько ходов вперед и оценивать полученную "позицию"
Действия расчитываются отдельно и для микро и для макро.
Пример расчета ходов для микро:
считаем на 1 ход ( 1-2 сек - средний кулдаун юнитов )
Для всех юнитов можно посчитать возможные действия: либо движение, либо удар, либо каст.
После этого возникнет куча изменений в раскладке боя. Выбираем из них то, что человеческий опыт считает более хорошим.
Простейшая оценочная функция будет просто количество damage по врагу и по нам через 1 ход.
Там где получается лучше всего, туда и идем.
Оценочную функцию можно существенно улучшить если ввести в нее дополнительные параметры основываясь на человеческом опыте.
Например, повысить ценность героя ( скажем полезнее сделать меньше damage, но сохранить героя ) и так далее.
Даже при расчете на 1 ход этот AI будет очень силен, так как возможности человека в варкрафте сильно ограничены по сравнению с шахматами тем, что он не успевает сделать то, что нужно.
Человек не в состоянии управлять всеми юнитами по отдельности.
Если позволят вычислительные мощности, то глубину расчета можно повысить.
Скажем считать всевозможное действия на 2 хода. И ценить что лучше, скажем сделать два удара юнитом, или сделать один ход к другой цели и потом нанести удар по ней.
Еще раз повторюсь, опыт используется не для выбрасывания ходов из дерева расчета, а для оценки позиций на дне дерева расчета.
Offline
P1366 Я не зарабатываю на акциях. Программа писалась как курсовая для тестовой БД колебаний курсов акций и ориентированна только для подобной БД. Ответы не на много отличались от экспертных.
Что бы писать для реальных колебаний, нужно хотя бы изучать их некоторое время, понять объем данных и т.д. Ищи в иностранном софте.
Offline
lets.see написал:
P1366 Я не зарабатываю на акциях. Программа писалась как курсовая для тестовой БД колебаний курсов акций и ориентированна только для подобной БД. Ответы не на много отличались от экспертных.
Что бы писать для реальных колебаний, нужно хотя бы изучать их некоторое время, понять объем данных и т.д. Ищи в иностранном софте.
А что ж не зарабатываешь, если не намного от экспертных?
Ты представляешь, что бы творилось, если бы "в иностранном софте" была такая программа?
Offline
Dwoggurd написал:
P1366
Как человек, который будучи студентом написал простенькую программу играющую в шахматы,
считаю себя вправе поправить тебя. Можно?
Пример расчета ходов для микро:
считаем на 1 ход ( 1-2 сек - средний кулдаун юнитов )
Для всех юнитов можно посчитать возможные действия: либо движение, либо удар, либо каст.
После этого возникнет куча изменений в раскладке боя. Выбираем из них то, что человеческий опыт считает более хорошим.
Простейшая оценочная функция будет просто количество damage по врагу и по нам через 1 ход.
Там где получается лучше всего, туда и идем.
Оценочную функцию можно существенно улучшить если ввести в нее дополнительные параметры основываясь на человеческом опыте.
Например, повысить ценность героя ( скажем полезнее сделать меньше damage, но сохранить героя ) и так далее.
Даже при расчете на 1 ход этот AI будет очень силен, так как возможности человека в варкрафте сильно ограничены по сравнению с шахматами тем, что он не успевает сделать то, что нужно.
Человек не в состоянии управлять всеми юнитами по отдельности.
Если позволят вычислительные мощности, то глубину расчета можно повысить.
Скажем считать всевозможное действия на 2 хода. И ценить что лучше, скажем сделать два удара юнитом, или сделать один ход к другой цели и потом нанести удар по ней.
Еще раз повторюсь, опыт используется не для выбрасывания ходов из дерева расчета, а для оценки позиций на дне дерева расчета.
Типичная ситуация (шахматы, варкрафт): возможных ходов много, но любые, кроме двух-трех, ведут к капитальным потерям, о чем нас честно извещает ф-ция оценки позиции. Так вот если ты не будешь отбрасывать ходы, ведущие в жопу, ты просчитаешь 2-3 хода вперед, если будешь, то на 10. Так что я сильно сомневаюсь, что ходы из дерева не выбрасываются.
Твой вариант микро АИ понятен, собссно в моих и Корвина постах это и мелькало. Почитай про 400клеточные шахматы. На один ход не интересно, нет. А вот потянет ли реалтайм рассчет хотя бы 10 ходов
Offline
P1366 А что бы творилось, если бы написали компьютерную программу, обыгравшую чемпиона мира? Все забросили бы шахматы? Написали, а оказалось не забросили.
ИИ и экспертные системы отлично помогают когда важность решения не критична, нужна лишь оценка ситуации (давать банку кредит фирме или не давать)
P1366 написал:
Ты представляешь, что бы творилось, если бы "в иностранном софте" была такая программа?
а что бы творилось? фирмы бы использовали такие программы и не давали бы за дешево купить потенциально дорогие акции
Offline
lets.see написал:
P1366 А что бы творилось, если бы написали компьютерную программу, обыгравшую чемпиона мира? Все забросили бы шахматы? Написали, а оказалось не забросили.
ИИ и экспертные системы отлично помогают когда важность решения не критична, нужна лишь оценка ситуации (давать банку кредит фирме или не давать)P1366 написал:
Ты представляешь, что бы творилось, если бы "в иностранном софте" была такая программа?
а что бы творилось? фирмы бы использовали такие программы и не давали бы за дешево купить потенциально дорогие акции
Примерно тоже самое, как если бы написали программу, которая говорит следующую карту за покерным столом
Экспертные системы, которые говорят, типа с такой вероятностью случится то, с такой это - пожалуйста (будет тебе вроде покер-калькуляторов). Но мы то говорим об очень точном прогнозе.
Offline
P1366 по-моему, никакие диссертации ты не слушал, а если и слушал, то не про то, что говоришь
невозможно создать интеллект, подобный человеческому, по двум причинам:
1) наш интеллект подстраивается под любую задачу, ИИ разрабатывается под конкретную.
2) человек развивается до более/менее нормального интеллектуального уровня в течении 7-23 лет, сложно реализовать сложную систему, которая могла без сбоев долго и корректно функционировать.
я же не говорю про систему "привет! как дела? - нормально! как у тебя?", мы говорим о конкретных задачах. (не варик и прогнозирование акций одновременно, а варик отдельно, акции отдельно)
Отредактировано lets.see (06-09-2006 22:34:53)
Offline
lets.see написал:
P1366 по-моему, никакие диссертации ты не слушал, а если и слушал, то не про то, что говоришь
невозможно создать интеллект, подобный человеческому, по двум причинам:
1) наш интеллект подстраивается под любую задачу, ИИ разрабатывается под конкретную.
2) человек развивается до более/менее нормального интеллектуального уровня в течении 7-23 лет, сложно реализовать сложную систему, которая могла без сбоев долго и корректно функционировать.
я же не говорю про систему "привет! как дела? - нормально! как у тебя?", мы говорим о конкретных задачах. (не варик и прогнозирование акций одновременно, а варик отдельно, акции отдельно)
Диссертацию не слушают, ее пишут А конкретней писал мой сотрудник в бытность аспирантом на матфаке. Как раз про прогнозирование курса акций исходя из истории колебаний, записанной в БД. Нейронные сети, насколько я помню. Мне это было интересно, т.к. тогда я кое-что писал для торговцев акциями. Так вот от них я ни разу не слышал, чтоб такое применялось на деле. А сотрудник меня даже не пытался убедить, что это работает на реальном рынке. Можешь попробовать - будет интересно.
1) Я это знаю. Просто наш мозг содержит области, которые выполняют функции, на которые разделяют ИИ (распознавание изображений, звука, обучаемость и т.д.)
2) Я где-то говорил, что варик и акции вместе? Еще раз, я привел пример того, что даже банальный пример обучаемости (акции) сделать рабочим (а не для курсовой, диплома или диссера) весьма не просто.
Что-то потерял нить: в чем ты хочешь меня убедить, в двух словах?
Offline
P1366 почитай, нашел на первой странице яндекса
http://fx-trader.narod.ru/Nn_fin2.htm
Offline
P1366
Типичная ситуация (шахматы, варкрафт): возможных ходов много, но любые, кроме двух-трех, ведут к капитальным потерям, о чем нас честно извещает ф-ция оценки позиции. Так вот если ты не будешь отбрасывать ходы, ведущие в жопу, ты просчитаешь 2-3 хода вперед, если будешь, то на 10. Так что я сильно сомневаюсь, что ходы из дерева не выбрасываются.
Определить на глаз ходы в шахматах ведушие в жопу очень не просто, так как даже отдача ферзя за пешку или ходы королем в центр доски в середине игры могут оказаться вполне сильными ходами.
Твои сомнения понятны, но ты не владеешь информацией как на самом деле это делается.
Наверняка можно найти области где можно будет разумно отбрасывать заведомо плохие ходы и вполне возможно в варике такой проход прокатит, ( например не ставить арчеров вперед войска ),
но, конкретно в шахматах, так не получится.
Поэтому честно считается все подряд.
Это как раз одна из сторон, где компьютеры сильнее человека.
Они регулярно находят парадоксальные ходы, которые человек даже не рассматривает. ( Что кстати еще одно косвенное доказательство, что они считают все ).
Типичные программы считают все ходы на определенную глубину, а форсированные варианты считают вообще до конца.
Под форсированными вариантыми понимаются цепочки ходов состоящие из взятий и шахов, так как понятно, что нет смысла оценивать позицию где одна из сторон только что сьела ферзя, а вторая еще не произвела ответное взятие.
То есть получается, что все ходы скажем считаются на 5-7 ходов вперед, а если в какой то момент происходит взятие/шах, то соответсвующее поддерево из шахов и взятий считается намного глубже.
Обычно до конца, то есть пока шахи и взятия не кончатся, или если это невозможно ( скажем в позиции можно сделать очень много подряд шахов ), то скажем на 20-30 ходов вперед.
Offline
Dwoggurd написал:
P1366
Наверняка можно найти области где можно будет разумно отбрасывать заведомо плохие ходы и вполне возможно в варике такой проход прокатит, ( например не ставить арчеров вперед войска ),
но, конкретно в шахматах, так не получится.
Поэтому честно считается все подряд.
Это как раз одна из сторон, где компьютеры сильнее человека.
Они регулярно находят парадоксальные ходы, которые человек даже не рассматривает. ( Что кстати еще одно косвенное доказательство, что они считают все ).
Типичные программы считают все ходы на определенную глубину, а форсированные варианты считают вообще до конца.
http://artema.fopf.mipt.ru/ai/chessalg.html
http://aigroup.narod.ru/dblue.htm
Слово отсечение там встречается
Offline
CyFer
Вот-вот, 60%. О подобном я и слышал от сотрудника о его диссере.
lets.see
Ну во-первых, банальная рекламная херь.
А во-вторых, если бы цитата ниже была правдой, то и смылс аиграть на акциях уже не было - все съел рейк
===
Соберем все данные в одном текстовом файле в виде весьма простой таблички и запустим наш нейропакет в режиме обучения. Если примеров мало, их можно пропускать по несколько раз. Через пятнадцать минут ваш пакет обучен. Для самоуспокоения протестируйте его на паре-тройке примеров - и назавтра вы сможете предъявлять ему реальные данные по биржевой ситуации, а в ответ получать прогноз относительно завтрашнего состояния ваших акций. Все ? Нет, не все. Добавьте маленькую программку, позволяющую вашему пакету автоматически обновлять данные, получая их непосредственно из сводок, распространяемых по электронной почте. Теперь в ваших руках действительно мощное оружие, способное, не отнимая времени и сил, вооружать вас знанием биржевых тенденций и даже подсказывать стратегию биржевой игры
===
Offline
P1366 хорошая у автора биография, только рекламную херь и писать
http://www.tora-centre.ru/firm/aimas.htm
почему-то у меня к нему больше доверия, чем к неизвестному мне человеку с форума.
Отредактировано lets.see (07-09-2006 01:05:32)
Offline
lets.see написал:
P1366 хорошая у автора биография, только рекламную херь и писать
http://www.tora-centre.ru/firm/aimas.htm
Дык эта, будь он хоть трижды герой мат труда - это его бизнес Так что статья лично для меня смахивает на рекламную. Давай вернемся к истокам - к спору о АИ для варика
Offline
P1366 не важно - реклама это или нет, важно - говорит он правду или нет. тебе о себе гораздо проще судить, чем мне о тебе.
Тема так и останется неаргументированной. вариковская ситуация не сравним с шахматной, потому что в первой ситуация развивается слишком монотонно (доска 20х20, но зато все пешки ), это мое ИМХО.
Аргументами могут выступить только факты о проделанной работе, за которую не возьмутся при отсутсвии хорошего интерфейса и финансировании. в дип-блю все вводили через специальную консоль, а не она сама определяла расположение фигур на доске.
Offline
P1366 написал:
http://artema.fopf.mipt.ru/ai/chessalg.html
http://aigroup.narod.ru/dblue.htm
Слово отсечение там встречается
Дорогой мой, давай переставать спорить на темы где ты не разбираешся
Алфа-бета отсечение это совсем не то, что ты подумал.
Это просто прием сокращения вычислений при обходе ПОЛНОГО дерева.
Идея алгоритма состоит в том, что так как один из игроков пытается минимизировать оценочную функцию, а другой ее максимизировать, то можно не обходить поддерево для которого и так уже ясно, что в нем есть ветка, которая ограничивает оценочную функция всего поддерева.
Допустим при одном рассмотренном нашем ходе мы вычислили, что в случае наилучшего ответа врага мы получим оценку 10, мы начинаем рассматривать второй наш ход и видим, что один из ответов врага приводит к позиции с оценкой 5. В этом случае остальную часть его ответов можно не считать, так как уже ясно, что если мы выберем второй ход, то враг всегда сможет пойти на позицию с оценкой меньше или равной 5, тогда как первый расмотренный ход нам дает оценку 10.
Это и есть альфа-бета отсечение.
Подробности можно прочесть в специальной литературе.
Но еще раз подчеркну, обход дерева в данном случае является "полным" в том смысле, что мы не выбрасываем никаких ходов заранее. И это отсечение ЭКВИВАЛЕНТНО полному обходу дерева по результату.
Offline
Dwoggurd написал:
P1366 написал:
http://artema.fopf.mipt.ru/ai/chessalg.html
http://aigroup.narod.ru/dblue.htm
Слово отсечение там встречаетсяДорогой мой, давай переставать спорить на темы где ты не разбираешся
Алфа-бета отсечение это совсем не то, что ты подумал.
Это просто прием сокращения вычислений при обходе ПОЛНОГО дерева.
Идея алгоритма состоит в том, что так как один из игроков пытается минимизировать оценочную функцию, а другой ее максимизировать, то можно не обходить поддерево для которого и так уже ясно, что в нем есть ветка, которая ограничивает оценочную функция всего поддерева.
Допустим при одном рассмотренном нашем ходе мы вычислили, что в случае наилучшего ответа врага мы получим оценку 10, мы начинаем рассматривать второй наш ход и видим, что один из ответов врага приводит к позиции с оценкой 5. В этом случае остальную часть его ответов можно не считать, так как уже ясно, что если мы выберем второй ход, то враг всегда сможет пойти на позицию с оценкой меньше или равной 5, тогда как первый расмотренный ход нам дает оценку 10.
Это и есть альфа-бета отсечение.
Подробности можно прочесть в специальной литературе.
Но еще раз подчеркну, обход дерева в данном случае является "полным" в том смысле, что мы не выбрасываем никаких ходов заранее. И это отсечение ЭКВИВАЛЕНТНО полному обходу дерева по результату.
Ладно, давай. Потому как я банально не понимаю твою терминологию: то ты говоришь "В этом случае остальную часть его ответов можно не считать", то "что мы не выбрасываем никаких ходов заранее". Т.е. получается, что его ответы ты за ходы не считаешь. И второе: форсированные ходы есть ни что иное как то же самое отсечение, но в профиль. Например: задаемся глубиной дерева 10, отсекаем жопные ходы, получаем частую глубину скажем 5-6, хороших ходов 10. Или наоборот, задаемся глубиной 5-6, для классных ходов считаем форсированно - в среднем получется на 10. Те же яйца, только с другой стороны.
Offline
RoW написал:
Истоки - спор о детях, играющих в покер, ну да ладно
А, да, извини По этой теме я уже высказался - каждый живет своим умом. Хочешь что-то изменить, начни с себя. Получится - другие станут автоматом равняться. А нудить как Йогурт - это уже пенсионное
Offline
P1366 написал:
то ты говоришь "В этом случае остальную часть его ответов можно не считать", то "что мы не выбрасываем никаких ходов заранее".
Мы выбираем такой ход, чтобы позиция была самой лучшей при самом неудобном для нас ответе соперника.
Обсчитали первый ход - пешкой. Получили позицию с оценкой 10.
Начали обсчитывать второй из наших возможных ходов - конём. Перебираем его ответы. При одном из его ответов - слоном - получили позицию с оценкой 5.
Всё, дальше можно не перебирать. Очевидно, что ход конём - плохой, так как позиция в лучшем случае (остальные его ответы слабее хода слном) с оценкой 5. Так зачем нам считать дальше, если ход пешкой даёт 10?
з.ы. Вобщем, это то же самое, что написал Двоггурд, только другими словами.
Offline
Corwin написал:
...
Обсчитали первый ход - пешкой. Получили позицию с оценкой 10.
Начали обсчитывать второй из наших возможных ходов - конём. Перебираем его ответы. При одном из его ответов - слоном - получили позицию с оценкой 5.
Всё, дальше можно не перебирать. Очевидно, что ход конём - плохой, так как позиция в лучшем случае (остальные его ответы слабее хода слном) с оценкой 5. Так зачем нам считать дальше, если ход пешкой даёт 10?
з.ы. Вобщем, это то же самое, что написал Двоггурд, только другими словами.
Абсолютно понятно. Тогда отвечу другими словами то, что я отвечал Двоггуду
Задачи обхода дерева как правило стараются использовать разнообразные отсечения, чтобы уменьшить кол-во обойденных узлов. Я посчитал, что и его ответы (ходы) тоже считаются узлами (как и твои ходы). Ты и Двоггурд говорите, нет, не считаются, поэтому то, что мы выкидываем полный обход его ответов (ходов) это не отсечения, это сокращение времени оценки позиции. Пусть будет так, я уже сказал, что готов больше не спорить. Хотя я считаю, что это таки отсечение узлов.
Offline
То, о чём ты говорил в начале - это отбрасывание ходов, которые кажутся (некий алгоритм оценки без перебора) плохими, то есть, перебираются не все ходы.
P1366 написал:
Типичная ситуация (шахматы, варкрафт): возможных ходов много, но любые, кроме двух-трех, ведут к капитальным потерям, о чем нас честно извещает ф-ция оценки позиции. Так вот если ты не будешь отбрасывать ходы, ведущие в жопу, ты просчитаешь 2-3 хода вперед, если будешь, то на 10. Так что я сильно сомневаюсь, что ходы из дерева не выбрасываются.
То, о чём написал Двоггурд - это отбрасывание ходов, про которые уже точно выяснили (во время перебора), что они плохие.
Dwoggurd написал:
Алфа-бета отсечение это совсем не то, что ты подумал.
Это просто прием сокращения вычислений при обходе ПОЛНОГО дерева.
..........
Но еще раз подчеркну, обход дерева в данном случае является "полным" в том смысле, что мы не выбрасываем никаких ходов заранее. И это отсечение ЭКВИВАЛЕНТНО полному обходу дерева по результату.
Offline