Обсудим принципы определения задач для сложных роботов?

Автомат, адаптивный автомат ... разум

Обсудим принципы определения задач для сложных роботов?

Сообщение =DeaD= » 06 окт 2004, 21:30

Интересуют мысли по поводу:
1. Определением приоритетов между задачами;
2. Выполнения нескольких задач одновременно;
3. Вообще способов определения задач роботу (не фиксированных 2-3 команд, а принципов определения задач);
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение =DeaD= » 06 окт 2004, 21:38

И сразу же несколько своих мысле по этому поводу:

1. Задачи деляться на "выполнимые" и на "правила":
Пример "правила" - "Не разрушать окружающие объекты";
Пример "выполнимой" задачи - "Переместиться из точки А в точку Б";

2. Задачи имеют приоритет, приоритет может быть определен заранее и может определяться субъектами, для каждого субъекта есть ограничение на приоритет, который он может назначить задаче, и на приоритет, который смогут назначить его доверенные субъекты;

3. Выполнимые задачи имеют крайний срок выполнения и флажок "сделать максимально быстро, даже если не успели в срок";

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

Но тут есть миллион разных вопросов, в общем обсудим, если есть желающие :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение setar » 06 окт 2004, 21:41

:D Желание есть!
Вот почитал я сейчас эти пункты,
и моментально на ум пришла ассоциация с языком логического программирования , например пролог.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение setar » 06 окт 2004, 21:46

Для сложного робота рационально выделить следующие задачи
(список будет пополняться):

  • обеспечение жизнедеятельности (подзарядка, починка, профилактика)
  • периодическая связь с управляющим центром ( дабы не потерять контроль), ну и для получения новых "выполнимых задач"
  • пополнение базы знаний об окружающем мире ( самообучение )
  • определение своего места в этом мире (ориентация)
  • исполнение поставленных задач в соответствии с их приоритетами
  • ...

Вообще то по грамотному сюда нужно добавить набор правил, регулирующий отношения между роботом и человеком ( которые Азимов сформулировал в декабре 1940-го в письме Джону Кэмбеллу, редактору журнала Astounding Scince Fiction)
Последний раз редактировалось setar 06 окт 2004, 21:58, всего редактировалось 1 раз.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение setar » 06 окт 2004, 21:57

По поводу одновременного выполнения задач, есть у меня некоторые соображения, которые я попробую сформулировать несколько позже - нужно добраться до бумажной памяти :wink:
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение =DeaD= » 07 окт 2004, 21:00

setar писал(а):Для сложного робота рационально выделить следующие задачи
  • обеспечение жизнедеятельности (подзарядка, починка, профилактика)
  • периодическая связь с управляющим центром ( дабы не потерять контроль), ну и для получения новых "выполнимых задач"
  • пополнение базы знаний об окружающем мире ( самообучение )
  • определение своего места в этом мире (ориентация)
  • исполнение поставленных задач в соответствии с их приоритетами

Думаю можно сделать так:
  • Приоритет 100% - "Неразрушающее" правило.
  • Приоритет 095% - Первому (с момента сброса робота) назвавшему себя хозяином дать приоритет на задачи 090% и на делегирование - 080%, кроме этого ему запрещается понижать свой приоритет.
  • Приоритет 050% - Обеспечение жизнедеятельности.

Приоритет команд хозяина выше, чтобы всегда можно было сказать "стоять!", чтобы робот в случае чего не ломился к зарядному устройству.

Приоритет неразрушающего правила выше всего, чтобы этот домашний питомец не ломанулся через стекло выполнять команду, которую никак иначе выполнить не смог.

setar писал(а):Вообще то по грамотному сюда нужно добавить набор правил, регулирующий отношения между роботом и человеком ( которые Азимов сформулировал в декабре 1940-го в письме Джону Кэмбеллу, редактору журнала Astounding Scince Fiction)

С ними все ужастно, потому что, чтобы их проверить надо написать искуственный интеллект :)

Есть гораздо более простые, хотя и ущербные, но для наших целей видимо годные, варианты таких правил, например:

Не оказывать на объекты действия, за исключением поверхности по которой движемся и объектов, которые нам указали задействовать.

Однако здесь имеем проблему - если робот будет знать что молоко в холодильнике, надо будет ему вместо
"Принеси молоко"
сказать
"Открой холодильник, возьми молоко, закрой холодильник, принеси молоко мне"

Хорошо, если при этом двери на кухню и из комнаты будут открыты :shock: :D

----------------------------------------------------------------------------------
Еще видимо надо будет сделать "пунктик", если 2 команды противоречат друг-другу и имеют одинаковый приоритет, то действует последняя данная.
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение setar » 08 окт 2004, 11:55

Я думаю так: прежде чем говорить о "озадачивании" робота, мы должны решить каким образом задача будет интерпретироваться.

Я знаю два типа интерпритации
1. Алгоритмическая
   "Открой холодильник, возьми молоко, закрой холодильник, принеси молоко мне"

2. Логическая
   "Принеси молоко"

Как видно в алгоритмической интерпретации поставить задачу сложнее, и цепочка операций может быть прервана неожиданными изменениями, например если у холодильника оторвали дверцу  :wink:

Но есть и в прологе некоторые НО, я пока не знаю получится ли переложить его на программируемые микропроцессоры или же он годится лишь для palm и более сложных мозгов.
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение =DeaD= » 08 окт 2004, 12:44

setar писал(а):Я знаю два типа интерпритации
1. Алгоритмическая
2. Логическая

Как в случае логической интерпретации может быть определен порядок выполнения команды?
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение setar » 08 окт 2004, 12:53

Да примерно так:
1. есть 3 пула задач :
   выполненные задачи, выполняемые задачи, и будующие задачи.

будующие задачи нужны для скидывания хвоста текущих задач при недробящейся последовательности текущих задач.

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

3. Далее организуется  циклический процесс выполнения задачи и модификации пула задач в соответствии с приоритетами, входными данными и новыми задачами.

P.S. пример пула задач

Открой холодильник, возьми молоко, закрой холодильник, принеси молоко мне

                             отдаю молоко
                             направляюсь к исходной точке
                             ищу маршрут к исходной точке
                             закрываю холодильник
                             беру молоко
                             открываю холодильник
                             иду к холодильнику
                             ищю маршрут к холодильнику
текущая задача ->  запоминаю исходную точку

пул может модифицироваться при внешних воздействиях, например при закрытой двери в комнату в текущие задачи вставится неделимый блок
                             закрыть за собой дверь
                             пройти за дверь
                             окрыть дверь
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Обсудим принципы определения задач для сложных роботов?

Сообщение Виталий » 08 окт 2004, 23:54

=DeaD= писал(а):Интересуют мысли по поводу:
1. Определением приоритетов между задачами;
2. Выполнения нескольких задач одновременно;
3. Вообще способов определения задач роботу (не фиксированных 2-3 команд, а принципов определения задач);


Немного непонятно название темы, в частности слова сложных роботов...
Сложные роботы могут быть и для простых задач.

Предположим, мы придерживаемся модульной архитектуры, и у нас есть предположим 2 модуля, перемещения и например навигации. Первый обеспечивает безопасное перемещение, второй показывает местоположение робота. Тогда вопрос о приоритетах между задачами трансформируется в вопрос ранжирования модулей, и возможно к переходу к "вентильной" системе взаимодействия. Кстати, некоторая "настойчивость" в поведении робота иногда заканчивается успехом. В скором времени заканчиваю эпопею с собственным блоком управления, посему смогу предложить некоторые высказывания на тему обучения робота.

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

Способов определения задач? Это наверное для универсальных роботов...
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Обсудим принципы определения задач для сложных роботов?

Сообщение =DeaD= » 09 окт 2004, 06:02

Виталий писал(а):Немного непонятно название темы, в частности слова сложных роботов...
Сложные роботы могут быть и для простых задач.

Согласен, кривое название, попробую придумать правильнее.
Однако смысл тот-же, есть несколько задач, и могут добавляться новые, нужно их все выполнять, однако не в случайном порядке, а если еще и сможем комбинировать задачи, разбивая их на подзадачи и выполняя вперемешку, чтобы выполнить их быстрее, то вообще отлично.

Предлагается именно эти темы и обсудить :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Kanoka » 11 ноя 2004, 04:23

Эко вас понесло! Завтра присоеденюсь к обсуждению, сегодня уже поздно, спать хочется...
Kanoka
Модератор
 
Сообщения: 1274
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

двери

Сообщение Floksa » 13 дек 2004, 21:09

Почему такое интересное обсуждение и вдруг - прервалось???
Вы тут обсуждали, что если робот будет знать, что молоко в холодильнике, надо будет ему вместо "Принеси молоко" сказать "Открой холодильник, возьми молоко, закрой холодильник, принеси молоко мне". Хорошо, если при этом двери на кухню и из комнаты будут открыты.
Но ведь участники форума строят самообучающиеся системы. Во всяком случае, стремятся к этому. Надо только научить робота открывать и закрывать двери, и тогда он сам сообразит, что нужно каждый раз производить эти действия, чтобы достать то, что находится за какой-нибудь дверью. В этом случае команда будет выглядеть так "Принеси молоко из холодильника". Все двери по дороге робот откроет сам.
Floksa
 
Сообщения: 101
Зарегистрирован: 09 дек 2004, 23:49
Откуда: Санкт-Петербург

Сообщение =DeaD= » 14 дек 2004, 00:16

Это как он так вдруг "сам сообразит" ?

Подробней в этом месте :)
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Виталий » 14 дек 2004, 00:35

И еще, хочется услышать ответ на вопрос. А как узнать, что перед тобой дверь-то? И при этом настоящая, а не нарисованная =)
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5