![]() |
6.5. Автоматический синтез алгоритмовБольшой интерес для робототехники представляет метод автоматического синтеза алгоритмов решения узкого класса задач, разработанный системными программистами для своих целей. В этом методе существенным компонентом является планирование цепочек операторов, образующих алгоритм, необходимый при данной внешней ситуации. Операторы, снабженные информацией о способе их "соединения", часто называют (если применяется семейство операторных алгоритмов) модулями. Задача автоматического синтеза состоит в том, чтобы, зная исходную информацию (ее имя. и ее значение) и название искомого результата, построить из заранее заготовленных модулей необходимый алгоритм. Такая проблема часто возникает, если робот рассчитан на выполнение команд, подаваемых его руководителем. Чтобы это пояснить, приведу простой пример. Предположим, что робот должен выполнять команды такого типа: "Принести из библиотеки с полки номер 60 книгу номер 20". Для этого нужна информация и о том, где робот находится в момент получения задания. Такая информация есть в собственной модели робота (а если ее нет, то она должна быть задана). Допустим (для упрощения примера), что она есть. Нужно только указать ее название. Команда может иметь вид: "1) Пойди отсюда в библиотеку; 2) возьми с полки № 60 книгу № 20; 3) из библиотеки принеси сюда". В команде выделены исходные данные (пойди отсюда) и название искомого результата (библиотека, полка № 60, книга № 20, принеси сюда). Алгоритм планирования определит такую цепочку модулей: 1) ПОЙТИ (из данной комнаты в коридор); 2) ПОВЕРНУТЬСЯ (налево); 3) ИДТИ (до двери справа); 4) ПОВЕРНУТЬСЯ (направо); 4) ВОЙТИ (в библиотеку); 5) НАЙТИ (полка № 60, книга № 20); 6) ВЗЯТЬ (книгу); 7) ВЫЙТИ (в коридор); 8) ПОВЕРНУТЬСЯ (налево); 9) ИДТИ (до второй двери справа); 10) ПОВЕРНУТЬСЯ (направо); 11) ВОЙТИ (в данную комнату); 12) ОТДАТЬ (книгу, руководителю)). В приведенном примере шрифтом выделены названия модулей; в скобках указаны необходимые для их работы сведения. В полученной цепочке модулей их количество равно 12, но из этого числа различных только 6 (ПОЙТИ, ПОВЕРНУТЬСЯ, ИДТИ, ВОЙТИ, НАЙТИ и ОТДАТЬ). Эти 6 модулей должны быть выбраны из имеющегося запаса и соединены в нужную цепочку. Упомянутый запас модулей называется библиотекой модулей и хранится в запоминающих устройствах робота. Каждый модуль использует некоторую исходную для него информацию и вырабатывает:
В библиотеке модулей каждый может иметь некоторую оценку, и тогда для задач, имеющих несколько путей решения, может быть выбрана цепочка с наибольшей (или наименьшей, смотря по тому, что лучше) суммой оценок. Это значит, что данный метод допускает оптимизацию синтезируемого алгоритма. Достоинство данного метода заключается в том, что вместо хранения большого объема управляющей информации он позволяет хранить небольшое число модулей (позволяет экономить память). Но нужно знать и издержки метода. Он требует наличия алгоритма синтеза и алгоритма ведения библиотеки модулей (если мы хотим иметь возможность включать в нее новые модули и исключать какие-то, ставшие ненужными). Кроме того, он связан с расходом алгоритмического времени (а значит, и физического) на синтез и оптимизацию. Для тех читателей, которых это может интересовать, сообщу, что метод синтеза и оптимизации представляет собой интерпретацию решения транспортной задачи на сети дорог (модули являются образами географических пунктов, а комплекты имен данных - образами соединяющих их дорог). Из приведенного мною примера не следует сделать вывод о том, что автоматический синтез алгоритмов применим только для "домашних" роботов, которых, кстати говоря, пока что нет. Он вполне и даже в большей степени применим для промышленных роботов, приспособленных для выполнения определенных классов работ. |
![]()
|
|||
![]() |
|||||
© ROBOTICSLIB.RU, 2001-2019
При копировании материалов проекта обязательно ставить ссылку на страницу источник: http://roboticslib.ru/ 'Робототехника' |