Автор: kondrat Нее Любая - значит любая |
|
Да, тут все массовики - затейники, сами фокусы любят показывать, а в роли хлопающей публики только безликие "гости", у которых только IP-шники вместо паспорта.
Уровень консолидации = 0.01%
Тем не менее расшивеливание полезно. В тёмную я не играю, посему показываю свой "фокус"- задачу.
Конкретно мой затык в понимании использования рандомайзинга для поисковой оптимизации.
Никаких "if-then", все на словах без алгоритмов, чтобы больше было понятно.
Система реализует условно-энергетическую задачу. Пусть это будет простейший анимат, который ползает по экрану находит и "кушает" появляющиеся случайным образом "конфетки".Есть входные сенсоры, есть выходные органы. Задача системы поддерживать энергетику. Каждое действие стоит затрат. Предположим органов действия 3 штуки:
1 поворот вокруг своей оси (стоит 1 у.е)
2 шаг на дискрету (стоит 2 у.е)
3 прыжок на 10 дискрет. (стоит 10 у.е)
Вот исходное состояние системы:
- 100 у.е. исходный кошелёк, энергия есть.
- на сенсоры ничего не приходит.
Вопрос что делать анимату?
Стандартный ответ включить рандомайзинг и выбрать действие от 1 до 3.
Я сейчас не рассматриваю запоминание удачных попыток, нюансы работы сенсоров. Мне важно понять эффективен ли рандомайзинг? Реализовать его алгоритмически (прошу пардону) элементарно. И для этого анимата безусловно рандомайзинг будет правильным выбором.
А в чем вопрос-то? А в том, что не нравится мне рандомайзинг, не живое это, подтасовочка. В живых системах нет рандомайзинга, нет чисто случайного, нет белого шума, а есть розовый, есть псевдо-случайное, которое обусловлено, которое реализуется на конечном поле событий.
Вернёмся к анимату. Ещё раз представим начальное состояние этой простейшей системы: от сенсоров ничего нет... «И тишина-а-а…» Кстати, для сложных систем непрерывный некластеризированный поток данных на начальном этапе тоже самое, что и отсутствие потока вообще, система не «знает» как реагировать при полном отсутствии априорных данных в её памяти.
Что так и будем стоять? Это я анимату… Нет, введём гадость. Если анимат ничего не делает энергия уменьшится на 1у.е за один цикл ничигонеделанья. Анимат стоит, энергия уменьшается… И вот тут надо ввести пороговые ограничения. Если энергия упала на 20 у.е, то сделать действие с наименьшей ценой. Наименьшая цена – это поворот, анимат вертится, энергия падает, а «конфет» нет. Следующий порог: энергия упала на 40 у.е. – сделать шаг на дискрету, следующее действие по стоимости. Ну, и т.д. до прыжков. До того случая, когда анимат, сделав очередной детерминированный шаг, не найдет «конфетку»., если к тому времени энергия ещё осталась.
Положительное действие запоминается в системе и включается в матрицу реакций, или действий. Здесь надо отметить, что матрица действий включает в себя множественные сочетания элементарных действий, которые привели к положительному результату. Этот аспект я пока не детализирую.
На каком-то шаге программы, когда от сенсеров ничего нет и предстоит выбор действия, приоритет отдается приобретенным матрицам действий, которые также ранжируются по затратам.
Таким образом, априорно-обусловленное изначальное бездействие системы нарушается пороговыми критериями без рандомайзинга.
Можно предположить, что если в арсенале системы уже накопилось достаточно положительных матриц действий и их конечное число, то опять возникнет ступор. Опять возникнет ситуация, когда из списка действий надо выбрать энергетически наименьшее по пороговому критерию. И если в наборе матриц встречаются такие, что стоимость их одинакова, то выбрать ближайшую из списка. Опять без рандомайзинга. Это аналог того факта, что "правшей" в мире больше, они первые по списку... ибо поворот направо и налево энергетически одинаков, но выбирается правый, т.к он первый по списку.
(См. Правило профессора буравчика)
Можно предположить также, что, если распределение конфет будет не равномерным, а больше их будет, например, в левом верхнем углу, то анимат будет пастись именно там.
Можно предположить, что для простейшего анимата, когда он переберёт все варианты действий, возможен гигантский ступор и он «умрёт», если с неба не упадёт манна «конфетная», т.е. не изменится характер «внешнего мира» и распределение «конфет» не изменится. Умрет это значит, что действуя по линии наименьшего сопротивления под влиянием жестких критериев, его выбор будет одним и тем же. Т.е. ранговый список матриц действий когда-нибудь не приведёт к пополнению энергии за конечное время.
И в этом я не вижу ничего страшного, наоборот, это проливает свет на понимание конечности существования живых организмов. А выход в чем? А в том, чтобы развивать иерархии по принципу фрактальности.
Все описанное хорошо для однослойной (см. Эгг-а) или одноуровневой (см. Кек-а) схемы анимата.
Но как мы понимаем анимату даже до слабого ИИ "ползти по экрану" очень долго...
Реальная схема системы многоуровневая, каждый уровень живет своей жизнью и сам реализует задачу поиска. Чтобы понять что такое уровень, вот здесь:
http://www.gotai.net/forum/Default.aspx?postid=57100#57100http://www.project-ai.org/forum/viewtopic.php?f=7&t=832#p1320Это многоагентность в неконкурентной среде, так по-научному кратко.
Пресловутое попадание системы в экстремум обходится таким же макаром.
Задача:
1. Создать простейший анимат с указанными свойствами.
2. Реализовать два варианта выбора: чистый рандомайзинг и критерий выбора действия с наименьшими затратами по списку.
Ожидаемые результаты: Анимат с критерием без рандомайзинга будет жить дольше, т.к. его поиск будет обусловлен энергетической оптимальностью. Наоборот, если анимат по чистому рандомайзингу в определённые моменты выбирает затратные действия, которые не приводят к положительному результату, то его энергия может закончится в среднем быстрее.
За многословие прошу пардону, иначе никак.