Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

AI [Delphi, Windows]


Страницы:   1 2

Sormy ©   (2004-06-18 15:57:00) 

Кто-нибудь располагает информацией о том, как правильно создавать искусственный интеллект? Ну не на одних условных операторах же его делать?


Mindb0t   (2004-06-30 08:43:00) [1]

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

2Алекс А
Как я понял Вы серьёзно занимаетесь вопросами ии?


Алекс А   (2004-06-30 01:30:00) [2]


> Mindb0t   (29.06.04 19:28) [19]
> 2Murkt
> Фактически для нечёткой логики лучше использовать отдельные
> микрухи. А на пс ии это ерунда (пусть хоть !fuzzy^256 :)).
> Тем более, что эта логика очень даже чётная :)
>
> 2Алекс
> Лично мне - незачем. А вам - пожалуйста, используйте.


Сами себе противоречите.


Mindb0t   (2004-06-29 19:28:00) [3]

2Murkt
Фактически для нечёткой логики лучше использовать отдельные микрухи. А на пс ии это ерунда (пусть хоть !fuzzy^256 :)). Тем более, что эта логика очень даже чётная :)

2Алекс
Лично мне - незачем. А вам - пожалуйста, используйте.


Murkt   (2004-06-29 08:54:00) [4]

Фактически нечетная логика - это когда вместо boolean использовать cardinal, int64... :))


Алекс А   (2004-06-29 04:15:00) [5]


> Mindb0t   (28.06.04 12:22) [16]
> Удивлять не хотел - думал, что люди знают, тем более что
> wiz говорил про нечёткую логику...

Всё. Понял. Просто не догадался перевести.
Зачем вам три значения нечёткой логики, когда можно использовать вероятность ? См. постинг Алекс А (21.06.04 05:47) [6].


Mindb0t   (2004-06-28 12:22:00) [6]

Удивлять не хотел - думал, что люди знают, тем более что wiz говорил про нечёткую логику...
В двух словах - булевская логика это когда да нет (0 и 1), а фазилогика близка по значению к
человеческой (в понимании людей :)). Ну простой пример: Нужен ли Гейтс этому миру? Булевая
логика - Нет. Fuzzy - Ненужен, но его деньги - да! :) Может немножко неудачный пример, но я думаю,
что из него можно понять почему fuzzy логику назвали нечёткой. Хм... Раз уж не выходит в
двух словах обьяснить, даю ещё пример. Человек стоит на некотором расстоянии от здания, м/д ними
находится машина (ближе к дому). Человек задаётся вопросом: Каково расстояние от него до машины и
от машины до здания? Бул. л. - (Большое, маленькое - здесь невозможно за одну операцию определить
все параметры) - 1-ая операция: Большое. 2-ая операция: Маленькое. Фаз. л. - (одна операция и есть
вероятность того, что возможно обработать все параметры) - Большое расстояние от человека до машины и
незначительно меньшее, по отношению к предыдущему расстоянию, от машины до дома... Bool & Fuzzy логики
различны, как архитектуры RISC и CISC процессоров. Надеюсь всё понятно.
Но всё это опять же эмуляция простейших высокоуровневых мозговых процессов без понимания их работы на
уровне мозговой деятельности. Надо бы изучить сначала наш мозг, а потом уже браться за воплощение разума
в куске кремния, или ещё хуже, в несовершенном программном коде... Такой вот я пессимист. Хотя конечно бы
хотелось получить какие-либо серьёзные результаты уже в наше время, при жизни :). Кто знает, может быть
дальнейшее развитие квантовых систем позволит компьютеру наконец-то побить тест фон Неймана? ;) Или биологи
вкупе с психологами разберутся в структуре мозга?..

ps. Отвечаю на вопрос Sormy. Да, на основе только лишь чёткой логики реализовать эмуляцию ИИ практически
невозможно (нормального уровня). Разумнее пользоваться AIChips, с уже мной указываемого сайта, и не изобретать
велосипед (лучше подождать пока создадут мопед :)). А нейронные сети... Ну что ж, хороший инструмент самообучения,
и их вполне можно использовать как ЧАСТЬ алгоритма, но никак не основу.

pps 2Алекс А Увы! Уложился в 327 слов!..


Алекс А   (2004-06-27 04:41:00) [7]


> Mindb0t   (25.06.04 10:43) [14]
> Для хотя бы жалкого подобия ai нужна fuzzy-logic

Если вы хотели нас удивить этим словом, то считайте, что это удалось.
Но было бы куда лучше, если бы вы в двух словах объяснили её принцип.


Mindb0t   (2004-06-25 10:43:00) [8]

Не майтесь вы ерундой. Для хотя бы жалкого подобия ai нужна fuzzy-logic, а не булевская. А пока людьми достигнута только имитация ии, посредством нейронных прибамбасов. Всё равно ведь ничего нового не придумать :( Пусть дядьки в нии занимаются этим...


Алекс А   (2004-06-22 03:00:00) [9]


> wiz ©   (22.06.04 02:10) [12]
> конечно условие... условие это любая проверка, которая предполагает
> больше одного варианта развития событий.

Читайте последнюю фразу из постинга [6].
Если не понимаете, то поясняю.
Когда i = 0 или i = 100 никакого условия уже не будет. Также как нет условия, когда играют в русскую рулетку с пустой, или полной обоймой.


wiz   (2004-06-22 02:10:00) [10]

2 Алекс А:
конечно условие... условие это любая проверка, которая предполагает больше одного варианта развития событий.

if-then-else <- блок с одним входом и двумя выходами, в зависимости от _условия_. А вот условие может быть любым... Формально, вплоть до тривиального (1=1) или (0=5).

Как-раз эти случаи можно не считать условиями, т.к. они не предполагают выбора (кстати, нормальные компиляторы так и делают).

А вот (random(100)>N) это как раз условие. Оно означает, что выбор не детерменирован состоянием системы (программы), а делается произвольным образом. При каждом выполнении этого оператора, программа будет генерировать случайное число и !условием! перехода по ветке then будет то, что значение этого случайного числа больше N.

Можно сказать, что в качестве условия перехода взято случайное число из распределения такого-то (в данном случае равномерного). А можно сказать, что программа перейдёт туда-то и туда-то с вероятностью такой-то.

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

Хотя конечно изначально вопрос был не об этом.

Вопрос должен был звучать следующим образом: "Как правильно реализовывать ИИ? Не на одной же чёткой логике..." конечно не на одной... еще есть нечёткая логика. (отсюда и далее моё imho-размышление на тему)

Алгоритм работы ИИ можно представить в виде графа, где узлами графа будут некие условия выбора пути, а ребрами - действия. Так как мы хотим некоторой недетерменированности алгоритма, у нас есть два пути добавления "нечёткости".

Первый, "нечёткость" условий, что приводит нас к тому, что условиями выбора должны быть вероятностные величины. Или условия должны изменяться со временем, в зависимости от чего-либо не заданного в системе.

Второй, "нечёткость" действий. Можно со временем добавлять новые ребра, менять их порядок, изменять их. (Это уже ближе к нейросетям)


Алекс А   (2004-06-22 01:30:00) [11]


> cyborg ©   (21.06.04 08:54) [7]
>
> > if Random(100)
>
> Это конечно же не условие?

Это русская релетка. Хотя может быть для вас русская рулетка - тоже условие.


Sormy   (2004-06-21 22:03:00) [12]

Спасибо! Хороший сайт...


Mindb0t   (2004-06-21 09:52:00) [13]

2Sormy
aimatrix.nm.ru - сходи, не пожалеешь.


NailMan   (2004-06-21 09:22:00) [14]

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

---
WBR, NailMan aka 2:5020/3337.13


cyborg   (2004-06-21 08:54:00) [15]


> if Random(100)

Это конечно же не условие?


Алекс А   (2004-06-21 05:47:00) [16]

Ещё как вариант, использовать вместо условий вероятность.

Что-нибудь типа :

i := 50;

if Random(100) > i then inc(i) esle dec(i);


И можно в зависимости от успешности менять i на большее или меньшее значение.


}{enon   (2004-06-20 19:43:00) [17]

Как раз на одних условиях (куда же ты денешься без if'a?). Другое дело, что они могут быть разными по реализации - нейросети, мат. рассчеты или перебор, простое if time = ... и т.д.


cyborg   (2004-06-18 21:44:00) [18]

посты 2 и 3 это и есть условия.


Vertex   (2004-06-18 17:05:00) [19]

или нейросеть)


breakmaster   (2004-06-18 16:52:00) [20]

почему? еще case))


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо