Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
14-1097259853
DeadMeat
2004-10-08 22:24
2004.10.31
Раз уж дело зашло о старом железе...


9-1086552884
xman
2004-06-07 00:14
2004.10.31
Алгоритмы


1-1097575249
dreams
2004-10-12 14:00
2004.10.31
Как определить момент изменения размера колонки в Listview


8-1091344032
race1
2004-08-01 11:07
2004.10.31
mpeg header


14-1097672894
vecna
2004-10-13 17:08
2004.10.31
Менты с игрушечными пестиками...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский