>>> Назад <<<

Метод «человеческого подхода» в решении задач ИИ
При проектировании ИИ или хотя бы его элементов, полезно все таки строго придерживаться правила «человеческого подхода» к решении задач. То есть опираться на тезис: «А как бы решил эту задачу сам человек?»

В этом плане хочу поделиться показательным опытом решения проблемы изучения местности и последующей навигации. В качестве «местности» взята квартира с несколькими комнатами, дверями, мебелью и т.д. А объект воспитания- мой RoboJeep, оснащенный лишь ультразвуковым сонаром Polaroid на поворотной платформе с дальностью действия до 10 метров. Угол поворота сонара по фронту составляет 180 градусов и может задаваться с шагом в 1 градус. Впрочем, такая точность и не требуется, т.к. угол конуса (луча) излучателя составляет около 15 градусов.

Поначалу игнорируя «человеческий подход» и опираясь только на математику с геометрией, я пытался произвести разными методами картографирование (mapping) квартиры с составлением карты, по которой впоследствии можно было бы осуществлять успешную навигацию. Однако, как оказалось, одного сонара в этом случае мало. Привязываясь к локальным координатам (а в данном случае мы имеем векторные координаты) одной комнаты, невозможно построить карту другой комнаты, а тем более всей квартиры. Необходимо ввести так называемые глобальные координаты, в рамках которых привязывать карту комнат. Тут хорошо бы подошла система GPS :-) или на худой конец... компас!

Задачу усложняет мебель. Если бы мы имели идеальную пустую комнату прямоугольной формы, то при помощи разных геометрических методов (ну, например, позиционирование по центру комнаты, зная ее длину и ширину, или по одному из углов) можно было бы с успехом находить текущие координаты аппарата и устанавливать направление его движения. В реальности расставленные по квартире диваны и шкафы сильно искажают «прямоугольность» комнат и делают начальный mapping и дальнейшую навигацию крайне сложной. Я уже не говорю о переменных величинах. Например, табуретка или столик на колесах... Активно поработав с транспортиром и вспомнив геометрию за 6-й класс, я бросил эту затею. А кроме того, для хранения полноценной карты у меня просто не хватит памяти на борту RoboJeep.

И тут жена спрашивает меня, где находится ее красная сумочка? Да, там в шкафу на второй сверху полке справа... Стоп!!! Надо было сказать так: «полярные координаты сумочки равны X47, Y5, Z-38 градусов, а длина вектора 178 см относительно локальных координат шкафа...» и тут же получил бы сковородой по башке! Типа- не умничай! Оно и правильно. Мы же человеки! Почему тогда ИИ должен оперировать голой математикой. Пусть на вопрос, где находится, скажем, кухня, он ответит: из гостиной вторая дверь налево... И все!

На этом примере можно также хорошо отработать алгоритмы логического анализа собранных опытным путем данных. Ну, скажем, ИИ нашел, что кухня находится: из гостиной вторая дверь налево. Логично предположить, что гостиная в свою очередь находится: из кухни вторая дверь направо. Заполнив таким образом матрицу взаимных расположений комнат и дверей, робот может в любой момент по косвенным признакам понять где он находится и как проследовать в заданную комнату. Причем эта база данных будет смехотворно маленькой по размеру... байт 100! Дальнейшую локальную навигацию, обход препятствий, нахождение путем выборочных измерений проема двери и прочее, будут выполнять второстепенные алгоритмы и простейшая логика.



Hosted by uCoz