roboforum.ru

Технический форум по робототехнике.


Что-то типа "ОС" для робота :) только это не совсем ОС

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение mandigit » 13 апр 2009, 21:39

Вот, вспоминается коллективное поведение роботов.
Есть под это дело одна задачка интересная:

Есть роботы, есть зарядные станции.
Робот имеет аккумулятор.
Надо вырабатывать такое поведение, что-бы выжить (успевать дозарядится). У кого кончилась энергия - умер.

Вот и формируется методом естественного отбора поведенческие навыки, оценка решений или жизнь стаей :)
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 13 апр 2009, 23:09

demon333 писал(а):Хорошо,тогда -коммунизм.Мы ставим задачу,а партийные ячейки выбирают представителя от партии кто займется этой задачей.Приоритет у тех у кого есть флажок переходящего красного знамени победителя ком. труда.Не справился-отбираем,ищем лучшего и вручаем ему.

Это сильно упрощенная рыночная система с 1 тугриком :D

Добавлено спустя 51 минуту 52 секунды:
mandigit писал(а):Вот и формируется методом естественного отбора поведенческие навыки, оценка решений или жизнь стаей :)

Немного не то, у меня попроще задача формулируется - всегда 1 мозг который управляет кучей аффекторов, а тут множество самостоятельных особей и естественный отбор ведётся уже на уровне сообществ - какое победит.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение Digit » 14 апр 2009, 08:44

ну, ждем обещанного описания :)
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 14 апр 2009, 09:04

Я как-то даже не знаю с чего описание начать :)

В общем попробую так:

Цели и задачи, что хотел получить:
1. Единый базис для сравнения между собой наборов ресурсов использованных разными подходами для решения одной и той же задачи;
2. Привязку оценки эффективности выполнения роботом задач к внешней оценке эффективности его работы (если использовать робота вместо наёмного человека на предприятии или дома - сколько это будет стоить в итоге?);
3. Учет вероятностных событий при оценке используемых при решении задачи ресурсов;
4. Учет ущерба наносимого задачей другим задачам некорректными действиями по отношению к общим ресурсам;
5. Выбор задач для достижения максимальной суммарной выгоды при новых вводных и отсутствии пользователя для смены приоритетов;

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

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение Digit » 14 апр 2009, 09:08

пятую и вторую )
если клавиатура останется, то еще и четвертую :oops:
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 14 апр 2009, 10:50

Начнем со второй:

Пусть у нас есть информация, что:
1. Час работы нашего робота тупо как потребителя энергии стоит для нас 10руб.
2. 1км пробега нашего робота стоит по амортизации 250руб (изнашиваются механизмы);
3. 1час работы модуля пылесборника стоит по амортизации 20руб;

Теперь мы делаем запрос процессу который взялся пылесосить по нашей комнате - сколько ему надо будет ресурсов в унифицированных единицах и он отвечает, например, - 200руб. Мы можем прикинуть - дешевле будет вызвать клининговую компанию или заказать это роботу.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение Digit » 14 апр 2009, 11:57

т.е. надо эту информацию - по удельным соимостям - обновлять, т.к. цены меняются, инфляция и т.п. А нам для корректного сравнения с клининговой конторой нужны актуальные цифры, а не условные... :o
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 14 апр 2009, 12:00

Пятая: Допустим у нас есть набор задач для робота, нам в принципе всё равно чем он займётся в свободное время, мы ему указываем:

1. Выполнить задачу А за 20 минут за 150р;
2. Выполнить задачу Б за 30 минут за 100р;
3. Выполнить задачу В за 40 минут за 100р;
4. Выполнить задачу Г за 30 минут за 100р;

И есть времени на всё про всё "до прихода хозяев" скажем 65 минут.

Допустим мы прикинули и поняли, что эффективней всего выполнить задачу А и В, тогда получим оценку деятельности в 250р, но при начале выполнения операции А мы сталкиваемся с непредвиденной проблемой из-за которой понимаем, что не можем её завершить, а значит задача А отменяется. Теперь робот сам может прикинуть, что надо не выполнять В, а потом остановится, а надо отменить В и сделать лучше Б и Г, тогда хотябы на 200р оценки заработает.

Добавлено спустя 1 минуту 14 секунд:
Digit писал(а):т.е. надо эту информацию - по удельным себестоимостям - обновлять, т.к. цены меняются, инфляция и т.п. А нам для корректного сравнения с клининговой конторой нужны актуальные цифры, а не условные... :o

Конечно, но вопрос обновления цифр постоянного - это вопрос точности принятия решения. Ты же когда прикидываешь чего купить - тоже юзаешь прайсы контор с каким-то опозданием? :) или вообще не смотришь, а прикидываешь что примерно столько и стоят...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение Digit » 14 апр 2009, 16:00

Dead, такая система оценки безусловно облегчает принятие решений. Только не очевидно, как исполнители будут оценивать свои возможности? И как будет происходить выбор исполнителя?

Про выбор исполнителя
Положим, есть два исполнителя:
1. быстрый и неточный
2. медленный и точный
Пусть первый за 1 мкс на любой запрос говорит, что стоимость его работы 10 руб. А второй долго считает (15 минут), учитывает всякие нюансы и отчитывается о 132,56 руб. за работу.
Во-первых, как супервизор будет контролировать, что исполнитель не нарушает "правила"? Ну, что он, например, работает по графику, все успевает и т.п.? Понятное дело, что если не успел - получил в итоге штраф. Но тогда вместо того, чтоб в это время делать полезную работу, бот впустую попытается что-то сделать, не успеет, оштрафует... но ничего же не сделает!
Во-вторых, супервизор будет ждать получения оценок от исполнителей? И сколько? Т.е. например мы вводим дополнительные 2 минуты на принятие решения супервизором. Он из этих 2 минут дает 1 мин. на работу исполнителей. Кто не успел - штраф. Или как?

Про оценку
Как исполнители будут оценивать свои возможности пока не вполне понятно.
1. наличие инструментов (внешние ресурсы, как их назвал Snable). Этот пункт пока вообще не прогнозируем. Пусть накидывается 10 руб. на поиск инструмента и все.
2. (считаем, что "исполнитель" = "программа", которая неважно как реализована, т.е. может крутиться на отдельном проце, может быть просто задачей в многозадачной ОС или еще как-то)
получается, что каждый исполнитель должен знать потребление электронных компонентов. Например, исполнитель-полотер должен знать, сколько потребляет движок привода щетки. Если движок поменяли, изменили метод управления, просто отремонтировали - его потребление изменилось и об этом должен исполнитель знать. как происходит наделение исполнителя знаниями? загружает пользователь? мониторит сам исполнитель?
3. Если исполнитель может выполнить работу несколькими способами, то программа должна работать как несколько исполнителей? Если комбинаций мало, то ок. А если мы можем юзать щетку полотера в 2-х режимах в зависимости от загрязнения пола, то как это учесть? Ведь при одном режиме мы потратим меньше энергии, а значит дешевле все будет, а в другом - больше энергии, зато можем оттереть любую грязь. К тому же наиболее эффективно эти режимы варьировать в зависимости от показаний датчиков.
Если сделать двух исполнителей (экономичного и мощного), то решения получатся неэффективными.
Если варьировать, то как исполнитель должен оценивать? Как все экономичное (т.е. чтоб подешевле)? А это нарушение правил супервизора или нет?

и еще тут мысль... а если обанкротились все исполнители, а условия поменялись, и последний оставшийся справляться перестал? что тогда? возможна ли ситуация, когда обанкротились все полотеры и полы мыть робот перестал? :)
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 14 апр 2009, 16:42

Digit писал(а):Только не очевидно, как исполнители будут оценивать свои возможности?

А я и не обещал панацеи от всех проблем :) я могу только доказать, что к этому всё равно придётся прийти при попытке хоть как-то снизить нагрузку на бесконечный полный перебор допустимых решений, как и рынок пришел к универсальным деньгам в попытке уйти от перегруза информацией при естественном обмене, хотя и универсальным деньгам присущи масса проблем которые мы в т.ч. сейчас отгребаем в рамках финкризиса.

Digit писал(а):И как будет происходить выбор исполнителя?

Просто - кто дешевле решает задачу - тому и доверяемся.

Digit писал(а):Про выбор исполнителя
Положим, есть два исполнителя:
1. быстрый и неточный
2. медленный и точный
Пусть первый за 1 мкс на любой запрос говорит, что стоимость его работы 10 руб. А второй долго считает (15 минут), учитывает всякие нюансы и отчитывается о 132,56 руб. за работу.
Во-первых, как супервизор будет контролировать, что исполнитель не нарушает "правила"? Ну, что он, например, работает по графику, все успевает и т.п.? Понятное дело, что если не успел - получил в итоге штраф. Но тогда вместо того, чтоб в это время делать полезную работу, бот впустую попытается что-то сделать, не успеет, оштрафует... но ничего же не сделает!

Есть конкретный срок в который должен быть дан ответ на запрос супервизора, яркий тому пример - проведение тендоров на госпоставки (заметь как удобно мне вести диалог - в любой ситуации есть пример как это уже решается в бизнесе :D). Этот срок сразу сообщается исполнителю. Дальше его дело - участвовать в тендоре или нет. Срок конечно же не должен каждым пользователем устанавливаться от балды, а должно быть примерное соглашение на уровне сообщества разработчиков исполнителей и пользователей системы - в какие сроки адекватно успевать дать ответ.

Digit писал(а):Во-вторых, супервизор будет ждать получения оценок от исполнителей? И сколько? Т.е. например мы вводим дополнительные 2 минуты на принятие решения супервизором. Он из этих 2 минут дает 1 мин. на работу исполнителей. Кто не успел - штраф. Или как?

Кто не успел, тот опоздал :D

Digit писал(а):Про оценку
Как исполнители будут оценивать свои возможности пока не вполне понятно.
1. наличие инструментов (внешние ресурсы, как их назвал Snable). Этот пункт пока вообще не прогнозируем. Пусть накидывается 10 руб. на поиск инструмента и все.

В этом случае диспетчер должен как-то отвечать за наличие этих ресурсов - вы когда вызываете бригаду ставить окна - они не спрашивают есть ли у вас молоток, так же и если вы добавите робота в какую-то мастерскую - возникнет несколько вариантов:
А. Сделать роботу свой набор инструментов;
Б. Установить раздельное использование инструментов с диспетчеризацией и оценкой кто сколько какой инструмент продержал (в библиотеке за невозврат книги вам выпишут штрафники);

Вот я и решил с внешними ресурсами задачку :)

Digit писал(а):2. (считаем, что "исполнитель" = "программа", которая неважно как реализована, т.е. может крутиться на отдельном проце, может быть просто задачей в многозадачной ОС или еще как-то)
получается, что каждый исполнитель должен знать потребление электронных компонентов. Например, исполнитель-полотер должен знать, сколько потребляет движок привода щетки. Если движок поменяли, изменили метод управления, просто отремонтировали - его потребление изменилось и об этом должен исполнитель знать. как происходит наделение исполнителя знаниями? загружает пользователь? мониторит сам исполнитель?

Список доступных ресурсов с их параметрами и ценами на использование и штрафниками за некорректное с ними обращение передаёт задаче диспетчер.

Digit писал(а):3. Если исполнитель может выполнить работу несколькими способами, то программа должна работать как несколько исполнителей?

Нет, побеждает тот, кто выиграл тендор на задачу.

Digit писал(а):К тому же наиболее эффективно эти режимы варьировать в зависимости от показаний датчиков.

Тендор не могут выиграть 2 игрока одновременно.

Digit писал(а):и еще тут мысль... а если обанкротились все исполнители, а условия поменялись, и последний оставшийся справляться перестал? что тогда? возможна ли ситуация, когда обанкротились все полотеры и полы мыть робот перестал? :)

В принципе да, надо будет решить этот вопрос еще, но если реально нет программы, которая способна адекватно оценивать свои действия можно к любой программе прилепить тупого адаптивного "насяльника", который не беря на себя финансовых рисков поэтапно с заказчком проведёт несколько первых уборок постоянно спрашивая еще денег на следующий этап, а потом научившись оценивать связь между использованными ресурсами и задачей "откроет фирму" и начнет на себя брать "финансовую ответственность" :) методов вычисления адаптивной функции полно.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что-то типа "ОС" для робота :) только это не совсем ОС

Сообщение =DeaD= » 16 апр 2009, 12:04

В общем пока задачу подвешиваем, первую проверку теория прошла, как я считаю, никаких принципиальных проблем не обнаружено. Дальше надо будет прописывать пробные интерфейсы и пытаться её применять в каких-то разработках.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.

Вернуться в Идеи

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

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