|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.12.2007, 19:39 | #21 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Разъяснения
Цитата:
Будем все показывать на примерах. Начинающие могут открыть новый проект, добавить Timer и Edit, ...на таймере нужна вот такая процедура: procedure TForm1.Timer1Timer(Sender: TObject); begin Edit1.Text:=IntToStr(Random(10)); end; Установите Interval таймера 2000, откомпилируйте программу и запустите. Попробуйте запомнить последовательность нескольких цифр, что показывает Edit, затем закройте программу и запустите снова. Обнаружится точно такая же последовательность. Теперь напишите так: procedure TForm1.Timer1Timer(Sender: TObject); begin Randomize; Edit1.Text:=IntToStr(Random(10)); end; ...запускайте несколько раз и делайте выводы. И вообще, для чего все это нужно в играх? Допустим, ИИ сделал расчет, и должен поступить некоторым образом. Когда он делает в определенных условиях одно и то же, это становится скучным, а иногда просто раздражает, или даже бесит. Разнообразить поведение ИИ можно только с использованием радноматора, некоторого алгоритма или группы алгоритмов, основанных на генераторах случайных чисел. Можно вычислять сразу несколько приемлемых вариантов, и через рандоматор выбирать один из них. Скажем, атака некоторым оружием на разных дистанциях не должна быть статичным числом – всегда должен быть элемент удачи\неудачи, т.е. к числовому значению атаки нужно прибавлять случайное число из некоторого диапазона, например (-2; 2). Так же, все что должно появляться спонтанно и с разными параметрами, должно быть выполнено на генераторах случайных чисел, стандартных или самостоятельно разработанных.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
27.12.2007, 21:47 | #22 |
Пользователь
Регистрация: 30.11.2007
Сообщений: 19
|
Это все для меня? Круто! Спасибо! Вот теперь я понял, что некоторая случайность в действиях игровых персонажей нужна для разнообразия. Например: когда враг стреляет, он может и попасть в меня и промазать.
Я правильно понял? Я-то сам в игры мало играю, поэтому почти не представляю как должен себя вести персонаж. Не обращал на это внимания. Это примеры для какого языка? Я когда на Спектруме программировал, там случайное число бралось из ПЗУ. Или там была зависимость от времени прошедшего с начала включения компьютера. Или я что-то путаю, не помню. |
27.12.2007, 22:05 | #23 |
Форумчанин
Регистрация: 09.12.2007
Сообщений: 110
|
Это Delphi!
Для того чтобы получше изучить поведение персонажа советую поиграть в классику RPG например в Diablo или Diablo II. Там это очень хорошо показано!
Не забывайте что программирование это искусство!
|
27.12.2007, 22:30 | #24 | ||
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Цитата:
Цитата:
Поняв, что вам нужно на самом деле - воплотить это в код уже не составит труда. Randomize - как уже говорилось - вызывает генерацию относительно текущего времени(системного).
Life is too short, play more...
Как правильно задавать вопросы |
||
27.12.2007, 23:13 | #25 | |
Форумчанин
Регистрация: 09.12.2007
Сообщений: 110
|
Цитата:
А делать всё идеально ИИ должен в таких играх, например как шахматы!
Не забывайте что программирование это искусство!
|
|
28.12.2007, 08:27 | #26 | |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Цитата:
Разберитесь с определением ИИ. И определите, что вы хотите - разработать систему ИИ или ввести в игру систему случайности? Т.к. это диаметрально противоположные вещи. Поведение человека, является очень даже предсказуемым, на то оно и контролируется разумом (безумцев в расчет не брать ) - это вам скажет любой психолог. Простой пример - чат-боты. Если бы они говорили невпопад - какой от них былбы смысл? Вот интересный пример.
Life is too short, play more...
Как правильно задавать вопросы Последний раз редактировалось Alex21; 28.12.2007 в 08:31. |
|
28.12.2007, 09:35 | #27 | ||
Форумчанин
Регистрация: 09.12.2007
Сообщений: 110
|
Цитата:
Цитата:
Простой пример - если чат-боты говорили бы одно и тоже! Чтобы было?
Не забывайте что программирование это искусство!
|
||
28.12.2007, 09:40 | #28 |
Форумчанин
Регистрация: 09.12.2007
Сообщений: 110
|
Основные понятия искусственного интеллекта
Термин интеллект (intelligence) происходит от латинского intellectus — что означает ум, рассудок, разум; мыслительные способности человека. Соответственно искусственный интеллект (artificial intelligence) — ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий. Интеллектом называется способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам. В этом определении под термином "знания" подразумевается не только ту информацию, которая поступает в мозг через органы чувств. Такого типа знания чрезвычайно важны, но недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды обладают свойством не только воздействовать на органы чувств, но и находиться друг с другом в определенных отношениях. Ясно, что для того, чтобы осуществлять в окружающей среде интеллектуальную деятельность (или хотя бы просто существовать), необходимо иметь в системе знаний модель этого мира. В этой информационной модели окружающей среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как это отмечено в данном определении интеллекта, могут мысленно "целенаправленно преобразовываться". При этом существенно то, что формирование модели внешней среды происходит "в процессе обучения на опыте и адаптации к разнообразным обстоятельствам". Мы употребили термин интеллектуальная задача. Для того, чтобы пояснить, чем отличается интеллектуальная задача от просто задачи, необходимо ввести термин "алгоритм" — один из краеугольных терминов кибернетики. Под алгоритмом понимают точное предписание о выполнении в определенном порядке системы операций для решения любой задачи из некоторого данного класса (множества) задач. Термин "алгоритм" происходит от имени узбекского математика Аль-Хо резми, который еще в IX веке предложил простейшие арифметические алгоритмы. В математике и кибернетике класс задач определенного типа считается решенным, когда для ее решения установлен алгоритм. Нахождение алгоритмов является естественной целью человека при решении им разнообразных классов задач. Отыскание алгоритма для задач некоторого данного типа связано с тонкими и сложными рассуждениями, требующими большой изобретательности и высокой квалификации. Принято считат ь, что подобного рода деятельность требует участия интеллекта человека. Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными. Что же касается задач, алгоритмы решения которых уже установлены, то, как отмечает известный специалист в области ИИ М. Минский, "излишне приписывать им такое мистическое свойства, как "интеллектуальность". В самом деле, после того, ка к такой алгоритм уже найден, процесс решения соответствующих задач становится таким, что его могут в точности выполнить человек, вычислительная машина (должным образом запрограммированная) или робот, не имеющие ни малейшего представления о сущность самой задачи. Требуется только, чтобы лицо, решающее задачу, было способно выполнять те элементарные операции, их которых складывается процесс, и, кроме того, чтобы оно педантично и аккуратно руководствовалось предложенным алгоритмом. Такое лицо, действуя, ка к говорят в таких случаях, чисто машинально, может успешно решать любую задачу рассматриваемого типа. Поэтому представляется совершенно естественным исключить их класса интеллектуальных такие задачи, для которых существуют стандартные методы решения. Примерами таких задач могут служить чисто вычислительные задачи: решение системы линейных алгебраических уравнений, численное интегрирование дифференциальных уравнений и т. д. Для решения подобного рода задач имеются стандартные алгоритмы, представляющие собой определенную последовательность элементарны х операций, которая может быть легко реализована в виде программы для вычислительной машины. В противоположность этому для широкого класса интеллектуальных задач, таких, как распознавание образов, игра в шахматы, доказательство теорем и т. п., напротив э то формальное разбиение процесса поиска решения на отдельные элементарные шаги часто оказывается весьма затруднительным, даже если само их решение несложно.
Не забывайте что программирование это искусство!
|
28.12.2007, 09:40 | #29 |
Форумчанин
Регистрация: 09.12.2007
Сообщений: 110
|
Таким образом, мы можем перефразировать определение интеллекта как универсальный сверхалгоритм, который способен создавать алгоритмы решения конкретных задач.
Еще интересным замечанием здесь является то, что профессия программиста, исходя из наших определений, является одной из самых интеллектуальных, поскольку продуктом деятельности программиста являются программы — алгоритмы в чистом виде. Именно поэтому, создание даже элементов ИИ должно очень сильно повысить производительность его труда. Деятельность мозга (обладающего интеллектом), направленную на решение интеллектуальных задач, мы будем называть мышлением, или интеллектуальной деятельностью. Интеллект и мышление органически связаны с решением таких задач, как доказат ельство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, являются способность к обучению, обобщению, накопл ению опыта (знаний и навыков) и адаптации к изменяющимся условиям в процессе решения задач. Благодаря этим качествам интеллекта мозг может решать разнообразные задачи, а также легко перестраиваться с решения одной задачи на другую. Таким образом, мозг, н аделенный интеллектом, является универсальным средством решения широкого круга задач (в том числе неформализованных) для которых нет стандартных, заранее известных методов решения. Следует иметь в виду, что существуют и другие, чисто поведенческие (функциональные) определения. Так, по А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Другим примером поведенческой трактовки интеллекта может служить известное определение А. Тьюринга. Его смысл заключается в следующем. В разных комнатах находится люди и машина. Они не могут видеть друг друга, но имеют возможность обмениваться информацией (например, с помощью электронной почты). Если в процессе диалога между участниками игры людям не удается установить, что один из участников — машина, то такую машину можно считать обладающей интеллектом. Кстати, интересен план имитации мышления, предложенный А. Тьюрингом. "Пытаясь имитировать интеллект взрослого человека, — пишет Тьюринг, — мы вынуждены много размышлять о том процессе, в результате которого человеческий мозг достиг своего настоящего состояния… Почему бы нам вместо того, чтобы пытаться создать программу, имитирующую интеллект взрослого человека, не попытаться создать программу, которая имитировала бы интеллект ребенка? Ведь если интеллект ребенка получает соответствующее воспитание, он становится интеллектом взрослого человека… Наш расчет состоит в том, что устройство, ему подобное, может быть легко запрограммировано… Таким образом, мы расчленим нашу проблему на две части: на задачу построения "программы-ребенка" и задачу "воспитания" этой программы". Можно сказать, что именно этот путь используют практически все системы ИИ. Ведь понятно, что практически невозможно заложить все знания в достаточно сложную систему. Кроме того, только на этом пути проявятся перечисленн ые выше признаки интеллектуальной деятельности (накопление опыта, адаптация и т. д.).
Не забывайте что программирование это искусство!
|
28.12.2007, 19:37 | #30 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Уточнение.
Вот простой пример. У нас бот, относящийся к типу "Тролль". По-поведению он просто "безмозглый болван" с огромной силой, ...и что, он должен себя вести в тактике как гроссмейстер, играющий 12 индийских партий? ...отнюдь. В плане компьютерных игр, "совершенствование ИИ" сводится к максимальному копированию поведения определенных типов персонажей, ...речь не может идти об "Абсолютном ИИ", и это факт.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|