Форум: "Игры";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизAI Найти похожие ветки
← →
Sormy (2004-06-18 15:57) [0]Кто-нибудь располагает информацией о том, как правильно создавать искусственный интеллект? Ну не на одних условных операторах же его делать?
← →
cyborg © (2004-06-18 16:05) [1]Именно так, будут одни условия.
← →
breakmaster © (2004-06-18 16:52) [2]почему? еще case))
← →
Vertex (2004-06-18 17:05) [3]или нейросеть)
← →
cyborg © (2004-06-18 21:44) [4]посты 2 и 3 это и есть условия.
← →
}{enon © (2004-06-20 19:43) [5]Как раз на одних условиях (куда же ты денешься без if"a?). Другое дело, что они могут быть разными по реализации - нейросети, мат. рассчеты или перебор, простое if time = ... и т.д.
← →
Алекс А (2004-06-21 05:47) [6]Ещё как вариант, использовать вместо условий вероятность.
Что-нибудь типа :i := 50;
if Random(100) > i then inc(i) esle dec(i);
И можно в зависимости от успешности менять i на большее или меньшее значение.
← →
cyborg © (2004-06-21 08:54) [7]
> if Random(100)
Это конечно же не условие?
← →
NailMan © (2004-06-21 09:22) [8]Тип АИ выбирается на основе того что ты делаешь(тех возможностей которые тебе нужны). Если это скажем шутер и ты хочешь наделить АИ некоторой степенью интеллекта, то возможно подойдет комбинированная система: нейросети(самообучение) + темплейтовые действия(возможно научить АИ самому создавать темплейты поведения).
Если это какая-нить стратежка, то можно также поюзать нейросети. Если что-то экономическое, то генетические алгоритмы(или как их там по нормальному зовут).
---
WBR, NailMan aka 2:5020/3337.13
← →
Mindb0t (2004-06-21 09:52) [9]2Sormy
aimatrix.nm.ru - сходи, не пожалеешь.
← →
Sormy (2004-06-21 22:03) [10]Спасибо! Хороший сайт...
← →
Алекс А (2004-06-22 01:30) [11]
> cyborg © (21.06.04 08:54) [7]
>
> > if Random(100)
>
> Это конечно же не условие?
Это русская релетка. Хотя может быть для вас русская рулетка - тоже условие.
← →
wiz © (2004-06-22 02:10) [12]2 Алекс А:
конечно условие... условие это любая проверка, которая предполагает больше одного варианта развития событий.
if-then-else <- блок с одним входом и двумя выходами, в зависимости от _условия_. А вот условие может быть любым... Формально, вплоть до тривиального (1=1) или (0=5).
Как-раз эти случаи можно не считать условиями, т.к. они не предполагают выбора (кстати, нормальные компиляторы так и делают).
А вот (random(100)>N) это как раз условие. Оно означает, что выбор не детерменирован состоянием системы (программы), а делается произвольным образом. При каждом выполнении этого оператора, программа будет генерировать случайное число и !условием! перехода по ветке then будет то, что значение этого случайного числа больше N.
Можно сказать, что в качестве условия перехода взято случайное число из распределения такого-то (в данном случае равномерного). А можно сказать, что программа перейдёт туда-то и туда-то с вероятностью такой-то.
Вообще говоря, если в языке нет "условного оператора" (он же "оператор ветвления"), то можно получить лишь линейную программу. И никакого ИИ реализовать не получится.
Хотя конечно изначально вопрос был не об этом.
Вопрос должен был звучать следующим образом: "Как правильно реализовывать ИИ? Не на одной же чёткой логике..." конечно не на одной... еще есть нечёткая логика. (отсюда и далее моё imho-размышление на тему)
Алгоритм работы ИИ можно представить в виде графа, где узлами графа будут некие условия выбора пути, а ребрами - действия. Так как мы хотим некоторой недетерменированности алгоритма, у нас есть два пути добавления "нечёткости".
Первый, "нечёткость" условий, что приводит нас к тому, что условиями выбора должны быть вероятностные величины. Или условия должны изменяться со временем, в зависимости от чего-либо не заданного в системе.
Второй, "нечёткость" действий. Можно со временем добавлять новые ребра, менять их порядок, изменять их. (Это уже ближе к нейросетям)
← →
Алекс А (2004-06-22 03:00) [13]
> wiz © (22.06.04 02:10) [12]
> конечно условие... условие это любая проверка, которая предполагает
> больше одного варианта развития событий.
Читайте последнюю фразу из постинга [6].
Если не понимаете, то поясняю.
Когда i = 0 или i = 100 никакого условия уже не будет. Также как нет условия, когда играют в русскую рулетку с пустой, или полной обоймой.
← →
Mindb0t (2004-06-25 10:43) [14]Не майтесь вы ерундой. Для хотя бы жалкого подобия ai нужна fuzzy-logic, а не булевская. А пока людьми достигнута только имитация ии, посредством нейронных прибамбасов. Всё равно ведь ничего нового не придумать :( Пусть дядьки в нии занимаются этим...
← →
Алекс А (2004-06-27 04:41) [15]
> Mindb0t (25.06.04 10:43) [14]
> Для хотя бы жалкого подобия ai нужна fuzzy-logic
Если вы хотели нас удивить этим словом, то считайте, что это удалось.
Но было бы куда лучше, если бы вы в двух словах объяснили её принцип.
← →
Mindb0t (2004-06-28 12:22) [16]Удивлять не хотел - думал, что люди знают, тем более что wiz говорил про нечёткую логику...
В двух словах - булевская логика это когда да нет (0 и 1), а фазилогика близка по значению к
человеческой (в понимании людей :)). Ну простой пример: Нужен ли Гейтс этому миру? Булевая
логика - Нет. Fuzzy - Ненужен, но его деньги - да! :) Может немножко неудачный пример, но я думаю,
что из него можно понять почему fuzzy логику назвали нечёткой. Хм... Раз уж не выходит в
двух словах обьяснить, даю ещё пример. Человек стоит на некотором расстоянии от здания, м/д ними
находится машина (ближе к дому). Человек задаётся вопросом: Каково расстояние от него до машины и
от машины до здания? Бул. л. - (Большое, маленькое - здесь невозможно за одну операцию определить
все параметры) - 1-ая операция: Большое. 2-ая операция: Маленькое. Фаз. л. - (одна операция и есть
вероятность того, что возможно обработать все параметры) - Большое расстояние от человека до машины и
незначительно меньшее, по отношению к предыдущему расстоянию, от машины до дома... Bool & Fuzzy логики
различны, как архитектуры RISC и CISC процессоров. Надеюсь всё понятно.
Но всё это опять же эмуляция простейших высокоуровневых мозговых процессов без понимания их работы на
уровне мозговой деятельности. Надо бы изучить сначала наш мозг, а потом уже браться за воплощение разума
в куске кремния, или ещё хуже, в несовершенном программном коде... Такой вот я пессимист. Хотя конечно бы
хотелось получить какие-либо серьёзные результаты уже в наше время, при жизни :). Кто знает, может быть
дальнейшее развитие квантовых систем позволит компьютеру наконец-то побить тест фон Неймана? ;) Или биологи
вкупе с психологами разберутся в структуре мозга?..
ps. Отвечаю на вопрос Sormy. Да, на основе только лишь чёткой логики реализовать эмуляцию ИИ практически
невозможно (нормального уровня). Разумнее пользоваться AIChips, с уже мной указываемого сайта, и не изобретать
велосипед (лучше подождать пока создадут мопед :)). А нейронные сети... Ну что ж, хороший инструмент самообучения,
и их вполне можно использовать как ЧАСТЬ алгоритма, но никак не основу.
pps 2Алекс А Увы! Уложился в 327 слов!..
← →
Алекс А (2004-06-29 04:15) [17]
> Mindb0t (28.06.04 12:22) [16]
> Удивлять не хотел - думал, что люди знают, тем более что
> wiz говорил про нечёткую логику...
Всё. Понял. Просто не догадался перевести.
Зачем вам три значения нечёткой логики, когда можно использовать вероятность ? См. постинг Алекс А (21.06.04 05:47) [6].
← →
Murkt © (2004-06-29 08:54) [18]Фактически нечетная логика - это когда вместо boolean использовать cardinal, int64... :))
← →
Mindb0t (2004-06-29 19:28) [19]2Murkt
Фактически для нечёткой логики лучше использовать отдельные микрухи. А на пс ии это ерунда (пусть хоть !fuzzy^256 :)). Тем более, что эта логика очень даже чётная :)
2Алекс
Лично мне - незачем. А вам - пожалуйста, используйте.
← →
Алекс А (2004-06-30 01:30) [20]
> Mindb0t (29.06.04 19:28) [19]
> 2Murkt
> Фактически для нечёткой логики лучше использовать отдельные
> микрухи. А на пс ии это ерунда (пусть хоть !fuzzy^256 :)).
> Тем более, что эта логика очень даже чётная :)
>
> 2Алекс
> Лично мне - незачем. А вам - пожалуйста, используйте.
Сами себе противоречите.
← →
Mindb0t (2004-06-30 08:43) [21]Просто был опыт разработки подобных вещей и я понял одно, что нормальной соображалки для проги сделать не получится... Хотя
конечно для игр можно юзать нейромикросхемы.
Всё это интересно, но реально получить хоть утешающий результат не получается :(
2Алекс А
Как я понял Вы серьёзно занимаетесь вопросами ии?
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.039 c