Сегодня: Вторник, 16.04.2024, 15:00 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Работаем с VirtualDub

Моделирование в Maxon Cinema4D

Роботы и экзоскелеты

Наушники. Как выбирать?

Adobe Audition 3. Лучшая в 2010-м
Главная » ПОПУЛЯРНО ОБ ИИ

Популярно об ИИ. Выпуск 5

26.07.2010

Если не знаешь, куда идешь, придешь не туда, куда хочешь
Йоги Берра

Итак, в прошлых материалах в качестве основы мы рассмотрели наиболее практическое представление ИИ, основанное на агентах и агентно-ориентированных методах «агент-действие», рассказали о реализации функции вознаграждений и так далее. 
Но на данный момент существует и еще несколько узкоспециализированных направлений, изучающих ИИ, которые также нельзя оставить без внимания. Среди основных задач, которые пытаются решать в их рамках: адаптация к среде, самообучение/самосовершенствование, эволюция и так далее. То есть найти наименее абстрактные ответы на данные вопросы, так, чтобы их стало можно применять на практике. 
И в данной ситуации ко всему в рамках ИИ нужно подходить, как и физики в своей науке — если им удобно, подразумевают под светом волны, а если нет — поток частиц. 
Классический пример такового из области искусственного интеллекта… Представьте себе небольшую шахматную доску, на которой две крайние по диагонали клетки (угловые) отсутствуют. И стоит задача покрыть такую доску фишками домино, каждая из которых покрывает две соседние клетки. Первый и самый очевидный вариант — это математический перебор возможных вариантов, причем зачастую программисты так бы и подошли к решению проблемы. Но если абстрагироваться от того же программирования и включить логику, то можно отметить, что, например, черных клеток на доске на две больше, чем белых, а каждая фишка домино покрывает только одну белую и одну черную, соответственно, данную задачу решить невозможно.  
Вот очевидный пример использования двух различных подходов. И во втором случае это не другой вариант решения, а вообще иной взгляд на обозначенную проблему. Этим узкоспециализированные направления по изучению ИИ и ценны. 
Давайте перейдем к конкретным примерам.


Пример №1


Допустим, у нас есть некий виртуальный город, и стоит задача его снабжения… гончарными изделиями (можете представить себе стандартную игровую экономическую стратегию типа Pharao, Caesar, CivCity:Rome, но не Capitalism II(!)). Что вы делаете в данной ситуации как стратег? Правильно. Вычисляете потребности и строите определенное количество мастерских. При этом на самом деле вы не (!) рассматриваете варианты разнообразия и качества поставляемой продукции. То есть, все утрировано до планирования «в каждый дом по горшку». А если точнее, в каждый стандартный дом, в котором живет стандартный житель, по стандартному горшку. Ничего не напоминает? Правильно, коммунистическую модель (назовем ее так). И, кстати, она очень удобна с точки зрения планирования в рамках закрытой системы с минимумом неопределенностей. Чтобы не было шатких моментов с терминологией, назовем эту модель вариантом 1.
А теперь посмотрим на все не с точки зрения некоего глобального разума, а конкретного агента — мастерской. В его рамках планирование предсказуемо, причем оно практически не предусматривает никакого прогресса, основными элементами являются спрос и его удовлетворение, то есть, как говорили раньше, выполнение плана. Дело в том, что предполагается, что среда агента является статической, потому и постановка (формулировка) и решение задач делаются без учета изменений, которые могут произойти в данной среде. Все максимально детерминируемо, то есть предсказуемо. При этом агенту не обязательно отслеживать акты восприятия со стороны среды — он чувствует себя уверенно, решая поставленные задачи. В теории управления такие системы называют системами с разомкнутой обратной связью.  
Если мы не будем зацикливаться на экономической модели, то практически схожую аналогию вы можете провести с системами поиска и составления оптимальных маршрутов следования, когда имеется карта. Здесь тоже все детерминируемо, среда статична, а система не имеет обратной связи. Можно привести еще большое количество подобных примеров. 


…№2


Но в жизни все происходит не так ровно, и, возвращаясь к нашему примеру с мастерскими, можно отметить, что один агент (мастерская) из многих может выпускать более красивую и/или качественную и/или дешевую продукцию, соответственно, к нему будет перетекать больший покупательский поток и так далее. В таком случае эта мастерская начинает развиваться, укрупняться и совершенствоваться, в то время как некоторые другие производства сходят на нет либо же предпринимают попытки к улучшению, исходя из сложившейся ситуации. И не факт, что первая в итоге останется в выигрышном положении… это даже больше не капиталистическая модель, а дарвинская модель естественного отбора. Так построена природа, так работает эволюция, так появился человеческий разум.
С точки зрения мастерской нужно учитывать ряд факторов, сопутствующих состоянию рынка, поведению конкурентов и так далее. Среда агента является динамической и недетерминированной, проведение обратной связи со средой просто необходимо. А самому агенту нужны более сложные алгоритмы планирования. 
Но на самом деле, очень часто в рамках ИИ мы можем увидеть тяготение этого варианта к первому. То есть, максимального устранения неопределенностей и динамизма, получения предсказуемости. Кстати, об этом мы очень много говорили в позапрошлом материале этой серии.
На данный момент стоит остановиться на решении задач детерминированного типа в рамках статической среды.


Задача поиска маршрута и другие


Представим, что мы должны, имея карту города, составить маршрут следования из одного его конца в другой. Рассмотрим это как задачу, в которой имеются:
  • Начальное состояние. То есть, точка отправления.
  • Другие состояния, т.е. промежуточные пункты следования, которые могут описываться расстоянием либо временем следования. 
  • Цель. Точка прибытия.
В рамках задачи мы выполним вычисления, в рамках которых используется так называемая функция определения преемника, то есть расчета следующего оптимального состояния из имеющихся. При этом происходит сверка с конечной целью, а также с оценочной функцией (например, стоимость поездки), которая может быть сопутствующим влияющим фактором для данного алгоритма. 
При этом, рассчитывая путешествия нужно учитывать ряд сопутствующих факторов, например, предусмотреть варианты действий в непредвиденных ситуациях, то есть, альтернативные маршруты, использование других видов транспорта и т.п. 
Это самый простой вариант. Но допустим, помимо этого, у вас стоит задача обязательно посетить несколько промежуточных пунктов, и распланировать это нужно наиболее оптимальным способом. Эта задача известна как «задача коммивояжера» (Traveling
Salesperson Problem — TSP). По ее условию каждый город на карте определенной области должен быть посещен только один раз. И это очень важно, поскольку лишняя дорога — это затраты, вычитаемые из прибыли.
Сама задача коммивояжера имеет множество сфер применения, например, в промышленности нужно рассчитать перемещения сверла при создании отверстий в печатных платах и так далее.
Примерно схожие проблемы решатся в рамках автоматизации сборки, упорядочивания процессов, точное определение их следования друг за другом. 
Такие же вопросы решаются и в механизмах поиска (интернет и т.п.).


Поиск


А, в общем и целом, все заключается в поиске в пространстве состояний. В рамках задачи соответственно создается дерево поиска. Слово «дерево» говорит само за себя. Соответственно, начальное состояние называется узлом поиска, после которого происходит развертывание текущего состояния до множества последующих состояний. 
И тут важно отметить один ключевой момент. В игре крестики-нолики на расчерченной доске имеется всего девять состояний. Но, если создавать дерево поиска ходов, то в его рамках это количество состояний значительно увеличивается. То есть нельзя путать пространство состояний с деревом поиска.
Поскольку мы уже вплотную подошли к практике, изложение основ которой должно занимать достаточно много места, на сегодня ограничимся тем, что есть.
В принципе, нужно понять одно, что даже если существует некая неопределенность, человек, а он так себя ведет и в природе, аппроксимирует задачу до границ определенности. При необходимости абстрагирует, то есть, отделяет необходимые вводные данные для постановки самой задачи и принятия решений, отчленяет ненужные ветви. Ведь для составления маршрута из Минска в Борисов можно взять в учет и карту мира. И тут все зависит от задачи. Например, если между Минском и Борисовом вам нужно залететь в Нью-Йорк.
Экономические же модели создаются по схожим принципам, о чем мы также подробно расскажем. Хотя, даже сейчас вы можете на базе примера №2 попробовать создать дерево развития предприятия, при условиях, что у вас есть начальный капитал и нужно достичь цели: выпустить 1000 единиц товара. 

Кристофер

Перепечатка материалов или их фрагментов возможна только с согласия автора.






Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz