GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (19)След. > >>   Поиск:  
 Автор Тема: Второй уровень - Сознание - Ориентация в пространстве
Vpolevoj
Сообщений: 1408
Второй уровень - Сознание - Ориентация в пространстве
+2
Добавлено: 25 окт 13 3:48
Изменено: 28 окт 13 4:11
Поскольку мне скучно заниматься моделированием первого уровня, то дело у меня продвигается медленно (хоть и движется), и поэтому я с большим удовольствием делаю то, что мне ближе и понятнее - моделирование Сознания. Да и вам, мне кажется, работа с логичным Сознанием будет понятнее, чем с нелогичным образным Подсознанием. Дело-то привычное, потому что мы по сути только Сознанием и занимаемся.

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

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



Внутрь этого Лабиринта помещается "слепой" робот, то есть, это значит, что у него нет никаких дистанционных органов чувств, он может только двигаться вперед, и лишь упершись в преграду может понять, что там стена. Задача этого робота - составить план Лабиринта.

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



Место под план немного больше чем сам лабиринт, поскольку заранее не известно, где на самом деле стоит робот сначала, поэтому нам нужно от того места где стоит робот (в плане он всегда в центре) добавить клеток во все стороны: +9 вправо, +9 влево, +9 вверх, и +9 вниз - итого 19х19.

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



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

А теперь о главном.

Поскольку наш робот "слепой" (я специально утрирую условия задачи), то он НЕ МОЖЕТ оперировать реальным пространством, но может при этом оперировать пространством виртуальным - в своей голове. То есть, я постулирую, что все действия наш "слепой" робот планирует и осуществляет внутри своей МОДЕЛИ. Что нам, собственно, и нужно.

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

В реальном мире (Лабиринта) робот может:
1) шагнуть вперед / проверить своим лбом наличие стенки впереди. Это одно действие: либо шаг - перемещение, либо проверка боем наличия стенки;
2) повернуться влево или вправо на 90 градусов, совершить поворот;
3) подать сигнал (например, о помощи, или о достижении им требуемого результата);
4) стоять на месте.

В виртуальном мире действий у него несколько больше:
1) если впереди уже исследованный им проход ("зеленая черточка"), то можно шагнуть вперед (смело, так как проход уже был исследован);
2) повернуться вправо/влево на 90 градусов;
3) переместиться, используя уже исследованные проходы в заданную клетку;
4) проверить наличие прохода/стенки, сделав шаг в заданном направлении;
5) поставить отметку о наличии стенки или свободного прохода в данном месте;
6) составить план перемещения из одной клетки в другую, с подсчетом требуемых для этого шагов;
7) сравнение двух или более планов перемещения с точки зрения затрат по ходам;
8) выбор одного плана для реализации.

И только после этого можно приступить к собственно реализации выбранного плана в реальном Лабиринте.

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

http://yadi.sk/d/Tz0FhuykBZD37
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 5:44
Хороший топик. Сам собирался открыть похожий, может ещё открою.
Но некоторые замечания всё-таки есть.

Цитата:
Автор: Vpolevoj
ориентацию в пространстве. Это не самая трудная задача и не самая важная
А какие ещё бывают задачи? Разве все задачи не сводятся в конечном итоге к ориентированию в пространстве?

Цитата:
Автор: Vpolevoj
Поскольку наш робот "слепой" (я специально утрирую условия задачи), то он НЕ МОЖЕТ оперировать реальным пространством, но может при этом оперировать пространством виртуальным - в своей голове. То есть, я постулирую, что все действия наш "слепой" робот планирует и осуществляет внутри своей МОДЕЛИ.
Поскольку робот может из взаимодействия с лабиринтом наполнять свою память, значит что-то он всё-таки "видит". Поэтому говорить, что робот совсем слеп - несколько некорректно. Да, у него нету развитого пространственного зрения, но это ведь это не значит, что только в силу этого он вынужденно взаимодействует с виртуальным миром. Будто если бы у него было полноценное зрение, то он взаимодействовал бы не с моделью, а с "настоящей реальностью"... Робот всегда и только оперирует моделью - виртуальным пространством своей памяти! "Опрерировать реальным пространством" - это нонсенс.

Цитата:
Автор: Vpolevoj
А теперь немного об отличиях в тех действиях, которые может совершить это робот в реальном мире, и в мире, так сказать, виртуальном
В силу вышеизложенного это совершенно излишне. Если робот чего-то не может выполнить в "реальном мире", то это ограничение должно следовать из модели, которую он сам построил.

Цитата:
Автор: Vpolevoj
только после этого можно приступить к собственно реализации выбранного плана в реальном Лабиринте.
Я много думал об этом и пришёл к выводу, что реальный человек в реальных условиях приступает к выполнению плана, когда он устранил все противоречия в этом плане. Это очень важно. Если бы Ваш лабиринт был настоящий и имел вход-выход, тогда роботу не следовало бы изучать весь лабиринт, он мог бы приступить к построению плана побега, после обнаружения целостного маршрута от своего месторасположения к выходу. Т.е. наличие разрыва в маршруте было бы противоречием, которое следует устранить до того как построить план решения и начать по нему действовать.

И последнее. Мне всё-таки думается, что Вы выбрали не самую показательную задачу. Лабиринт плох тем, что в нём, как правило, есть один путь решения. Реальные интересные задачи, как правило, имеют много путей решения. В этом смысле было бы интересно проследить за обучением робота, который ищет путь из клетки А в клетку Б просто на пустом поле.
[Ответ][Цитата]
гость
174.127.112.*
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 6:07
Если этого робота сравнить с человеком, то этот человек будет на основе осязания составлять в гиппокампе план лабиринта. Так как у него нет глаз, а станы одинаеовы, то расстояние он будет замерять шагами и раздвинутыми руками. Так формируя осязательный образ, последовательно в парагиппокампальной извилине гиппокампа орбифронтальная кора склеила бы все эти данные.
Зрячему же, куда было бы легче, где он при помощи уже двух глаз быстро бы просчитал и оценил расстояние до местности.
А, если бы был бы у него сматрфон и он через него влез бы в карты гугли, то сразу вышел бы из этого лабиринта.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 6:13
Изменено: 25 окт 13 6:34
Андрей, во-первых, спасибо за ответ.
Хоть кому-то моя задача показалась интересной, и это радует. Не все же время перемывать косточки друг другу, нужно же и о предмете поговорить.

А во-вторых, мне приятно, что Вы всё правильно поняли.

Цитата:
Автор: Vpolevoj
...ориентацию в пространстве. Это не самая трудная задача и не самая важная
Цитата:
Автор: Андрей
А какие ещё бывают задачи? Разве все задачи не сводятся в конечном итоге к ориентированию в пространстве?

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

Цитата:
Автор: Vpolevoj
...Поскольку наш робот "слепой"
Цитата:
Автор: Андрей
Поскольку робот может из взаимодействия с лабиринтом наполнять свою память, значит что-то он всё-таки "видит". Поэтому говорить, что робот совсем слеп - несколько некорректно. Да, у него нету развитого пространственного зрения, но это ведь это не значит, что только в силу этого он вынужденно взаимодействует с виртуальным миром. Будто если бы у него было полноценное зрение, то он взаимодействовал бы не с моделью, а с "настоящей реальностью"... Робот всегда и только оперирует моделью - виртуальным пространством своей памяти! "Оперировать реальным пространством" - это нонсенс.

Именно это я и хотел сказать.
Просто избрал для донесения этой простой и очевидной мысли не очень простой и не очень короткий путь.

Да, мы ВСЕГДА ОПЕРИРУЕМ только своим ВИРТУАЛЬНЫМ ПРОСТРАНСТВОМ, поскольку другого у нас нет. И при этом не важно, "слепые" мы или нет. С помощью своих органов чувств мы формируем внутри себя модель пространства (и действительно, любого пространства, не обязательно физического, это может быть "пространство задачи", "пространство игры" и т.д.) и манипулируем уже ей.
А другого - не дано.

Цитата:
Автор: Vpolevoj
...А теперь немного об отличиях...
Цитата:
Автор: Андрей
В силу вышеизложенного это совершенно излишне. Если робот чего-то не может выполнить в "реальном мире", то это ограничение должно следовать из модели, которую он сам построил.

Я хотел сказать не об этом.
Я всего лишь хотел подчеркнуть тот факт, что для одного, на первый взгляд очень простого, шага или действия, иногда требуется совершить очень много действий внутри виртуального мира. И так тоже происходит всегда: в виртуальном мире мы совершаем ОЧЕНЬ МНОГО действий, прежде чем делаем один шаг в реальном.

Цитата:
Автор: Vpolevoj
только после этого можно приступить к собственно реализации выбранного плана
Цитата:
Автор: Андрей
Я много думал об этом и пришёл к выводу, что реальный человек в реальных условиях приступает к выполнению плана, когда он устранил все противоречия в этом плане. Это очень важно. Если бы Ваш лабиринт был настоящий и имел вход-выход, тогда роботу не следовало бы изучать весь лабиринт, он мог бы приступить к построению плана побега, после обнаружения целостного маршрута от своего месторасположения к выходу. Т.е. наличие разрыва в маршруте было бы противоречием, которое следует устранить до того как построить план решения и начать по нему действовать.

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

Цитата:
Автор: Андрей
И последнее. Мне всё-таки думается, что Вы выбрали не самую показательную задачу. Лабиринт плох тем, что в нём, как правило, есть один путь решения. Реальные интересные задачи, как правило, имеют много путей решения. В этом смысле было бы интересно проследить за обучением робота, который ищет путь из клетки А в клетку Б просто на пустом поле.

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

Теперь у меня для него другая задача.

Когда робот полностью обследует лабиринт, и у него в голове сформируется полный его план, то я возьму этого робота и перенесу в произвольное место.

Вопрос. Сколько ходов потребуется этому моему "слепому" роботу для того, чтобы он сориентировался в пространстве - понял бы, где он находится?
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 6:40
[... Хоть кому-то моя задача показалась интересной, и это радует. Не все же время перемывать косточки друг другу, нужно же о предмете поговорить ...]
Ну почему же, задача не просто интересная но и очень очень важная.
Другое дело что уровень вашего обсуждения ......
Все равно что начать на полном серьезе обсуждать задачу сортировки изобретая какой-то наивнейший алгоритм.
Задача о которой вы говорите называется SLAM.
Материала море. Ищите, читайте, тогда будет о чем говорить.
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 6:43
Цитата:
Автор: Vpolevoj
я вижу для этого робота следующую задачу: согласование своих действий с другими такими же роботами. А для этого им нужно уметь передавать друг другу необходимую информацию
1. Слово "задача", на мой взгляд, нельзя использовать в таком широком смысле. Это предельно чёткое и строгое понятие. Задача определяется идеальным ожиданием и фактом противоречия. Например, в Вашей задаче с лабиринтом идеальное ожидание - это, цитирую, "когда у каждой клеточки со всех сторон будет стоять либо стенка, либо "зеленая черточка". Это значит, пока есть хотя бы 1 клетка, у которых нет либо стенки, либо чёрточки - имеет место противоречие между идеальным ожиданием и тем, что имеем - т.е. имеет место задачная ситуация. Задача. А распознавание, например - это не задача. Взаимодействие роботов - это не задача. Потому что тут не задано идеальное ожидание и нет противоречия.
2. Полностью поддерживаю расширение элементарной задачной среды на среду с несколькими роботами. В этом смысле я считаю лучшей задачей - пятнашки. Там от 1 до 15 фишек (роботов, ИИ) пытаются договориться о едином непротиворечивом плане действий. И если Вам интересно, подскажу, что с моей точки зрения, обмениваться информацией значит обмениваться планами (идеальными ожиданиями). Таким образом, планы действий одних роботов (фишек) становятся для других роботов такими же факторами внешней среды как стенка или проход. И, соответственно, (что важно) появляется возможность строить свои планы (идеальные ожидания) относительно планов других роботов, обнаруживать задачи в связи с планами других роботов, и решать эти задачи...
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 25 окт 13 10:10
Скачал, поиграл... С двумя роботами - это сильно. Можно и с одним усложнить задачу. Например ввести параметр энергетики и назначить коэфы на поворот, разворот, перемещение и прыжок. Ну, и исследовать противоречия, не просто изучить лабирринт, а с наименьшими потерями начальной энергии.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 1:13
Изменено: 28 окт 13 4:20
Появилась возможность (а следовательно, и - задача) написать внешний интерфейсный язык программирования для этого робота, оформленный как отдельный блок. Для того, чтобы все желающие могли бы принять участие в программировании его поведения. Пусть каждый почувствует, что называется, на своей шкуре, каково это - вправлять роботу мозги.

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

Я вижу это как некий текстовый редактор, прикрепленный к основной программе, с набором фиксированных команд, но при этом с возможностью задавать свои переменные и объявлять свои функции и процедуры. Что-то типа Бэйсика для робота.

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

Первый блок ЗАДАЧА.

В этом блоке на языке программирования формулируется правило определения конечного состояния - условие достижения искомого результата. Например, для моего робота таким условием будет построение ПОЛНОГО ПЛАНА ЛАБИРИНТА, что на языке программирования будет выглядеть примерно так:

ЗАДАЧА
{ ;открываем блок (фигурные скобки необязательно указывать для всего отдельного блока программы, а можно и нужно использовать только для структурного выделения в блоки нескольких операторов, исполняемых в цикле)

Gotov = TRUE ;объявляем переменную логического типа и присваиваем ей значение ИСТИНА - она нужна нам для отражения состояния всех клеток (итоговая ИСТИНА будет означать, что все клетки лабиринта исследованы полностью, ЛОЖЬ - что еще не все)

For i=1,n ;пробегаем по всем клеточкам поля
{
Gotov = Gotov AND Test_Kletki(i) ; функция Test_Kletki() должна быть объявлена и описана ранее и она выполняет проверку клетки на исследованность всех её четырех стенок, если все стенки у этой клетки исследованы, то функция возвращает ИСТИНУ, если хотя бы одна стенка у клетки не исследована, то - ЛОЖЬ, логическая операция AND приводит к тому, что если хотя бы в одной клетке поля оказалась хотя бы одна не исследованная стенка, то вся переменная Gotov обратится в ЛОЖЬ и ИСТИНОЙ уже не станет ни при каких значениях функции Test_Kletka() далее. Таким образом, при пробегании функцией Test_Kletka() по всем клеткам поля, переменная Gotov примет значение ЛОЖЬ если хотя бы в одной клетке поля осталась хотя бы одна не исследованная стенка, и останется ИСТИНОЙ в противном случае. Что нам и требуется.
}
Return Gotov ;возвращаем значение переменной Gotov в основную программу

} ;закрываем блок ЗАДАЧА

Функция Test_Kletki() должна проверять состояние четырех стенок у клетки: сверху, снизу, справа и слева. Допустимые состояния у стенок клетки: есть стенка (уже исследованная), есть проход (уже исследован), НЕ исследовано. Если все четыре стенки у клетки УЖЕ исследованы, то она возвращает значение ИСТИНА, если хотя бы одна из стенок у клетки НЕ исследована, то функция возвращает значение ЛОЖЬ.

Для предварительного объявления и определения функций, массивов и переменных в программе должен быть еще один обязательный блок - начальный, который можно назвать СТАРТ, и который будет исполняться всего один раз при включении робота.

СТАРТ
{
объявление переменных, массивов, функций и процедур
начальные действия
}

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

ГОТОВ
{
Z ;подать звуковой сигнал (Z - предопределенная команда - "Звуковой сигнал")
S ;остановиться (S - тоже предопределенная команда - СТОП)
}

И второй обязательный блок (но на самом деле получается что уже четвертый) - это набор действий, которые робот будет исполнять, если искомый результат еще не достигнут. Этот блок, собственно, и есть основной блок программы - он содержит в себе инструкции ДЛЯ ДОСТИЖЕНИЯ конечного результата. Эти инструкции будут выполняться в режиме бесконечного цикла, как структура UNTIL, то есть, делай ПОКА не будет достигнуто искомое условие.

ДЕЛАЙ
{
блок команд, приводящих к достижению результата
}

Итого у меня получилось четыре основных блока программы. Их можно оформить отдельно каждый, чтобы они не взаимодействовали без нужды между собой, и не мешали бы ясности программирования. Можно еще сделать отладочное окно, где бы показывались значения всех объявленных переменных, и можно было бы отследить их изменения по ходу выполнения программы.

Что скажете?
Есть какие-нибудь советы и пожелания?
Все ли я учел?

Не хотелось бы сильно усложнять проект. Поэтому желательно обходиться самыми простыми средствами. Для управления роботом нет необходимости писать полноценный язык программирования. Достаточно простейших операций и привычных всем функций.

Набор фиксированных предопределенных команд зависит от конструкции робота и он как бы заложен в него изначально производителем, а мы можем лишь пользоваться этим набором команд. Так что, с этим проблем не будет, нужно лишь подумать и написать этот фиксированный набор команд. Что-то вроде команд: P - повернуть вправо на 90 градусов, L - повернуть влево на 90 градусов, V - шагнуть вперед, Z - подать звуковой сигнал, S - СТОП, остановиться и т.д. Символы этих команд не могут быть использованы для объявления пользовательских функций и переменных (это, я надеюсь, понятно).

Думаю, что если мне удастся создать подобный интерфейс, то тем самым будет положено начало нового витка взаимодействия пользователей нашего форума между собой. Тогда мы сможем обмениваться не только идеями и готовыми программами, но и предоставлять друг другу открытый интерфейс в наших программах для возможности вносить изменения в самую важную самую интересную для нас часть - в мозги создаваемого нами ИИ.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 2:30
[... Думаю, что если мне удастся создать подобный интерфейс, то тем самым будет положено начало нового витка взаимодействия пользователей нашего форума между собой. ...]

не. не положит.
такое уже дааааавным давно существует, но здесь на форуме это ничему начало не положило.
[Ответ][Цитата]
eto_ya
Сообщений: 1545
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 3:31
Цитата:
Автор: Vpolevoj

Тема нормальная. Предположим, что я хочу поучаствовать. Что конкретно делать предлагаете? К чему стремитесь? Сможете ли сами распланировать разработку?

[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 3:58
Изменено: 28 окт 13 4:07
Цитата:
Автор: eto_ya
Тема нормальная. Предположим, что я хочу поучаствовать. Что конкретно делать предлагаете? К чему стремитесь? Сможете ли сами распланировать разработку?

eto_ya, какая из заявленных здесь мною тем вам показалась привлекательной?

Объясню.

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

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

Для разработки уже этой узкой темы я придумал задачу: "Робот в лабиринте". Может быть, вы имеете ввиду именно эту задачу? Но она сама состоит из нескольких подзадач, и со временем будет только развиваться и усложняться. Какая из этих задач кажется вам интересной?

И вот сегодня я придумал к этому роботу сделать свой язык программирования с внешним доступным для любого пользователя интерфейсом. Может быть, вам именно это интересно?

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

Что я хочу?

В конечном счете я хочу создать Искусственный Интеллект состоящий из трех уровней (по модели Симонова П.В.). Пока же занимаюсь моделированием этих уровней по отдельности.

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

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

Какая мне может быть оказана помощь?
Ну, не знаю. Может быть, с написанием этого внешнего языка программирования. Вы никогда раньше не писали ИНТЕРПРЕТАТОР? Какие там есть "подводные камни"? Скажем, как на интерпретаторе можно объявлять новые типы переменных? Списки, перечисления? Какие соглашения при пользовании ИНТЕРПРЕТАТОРАМИ необходимы? Чем можно ограничиться, а чем безболезненно пожертвовать? И т.д.

Ищу того, кто уже писал хоть раз ИНТЕРПРЕТАТОР. У кого есть в этом деле опыт. Любой опыт, как положительный, так и отрицательный.
[Ответ][Цитата]
eto_ya
Сообщений: 1545
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 4:51
Изменено: 28 окт 13 4:55
Цитата:
Автор: Vpolevoj


СЧИТАЮ ПРИВЛЕКАТЕЛЬНЫМ:
- Наглядность демонстрации работы ИИ ("Робот в лабиринте")
- Постановка конкретных задач (шагов) в виде дерева (версионное движение от малого функционала к большему)
- Реализация базовых понятий (пространство, объект, мера, время, перемещение, сознание, способности, состояние, цель, план, ресурс, деятельность, общение, обмен информацией и т.д.)
- Создание модели простого мира, предметов и существ и взаимодействия всего этого (в рамках написанной программы)
- Использование веб-технологий из-за облегченности программирования на них (php, js, html)

СЧИТАЮ НЕ ПРИВЛЕКАТЕЛЬНЫМ:
- Написание собственных языков и интерпретаторов (это уже с избытком создано, и тратить на это время просто жалко)
- Создание некой платформы для ИИ (если я вас правильно понял, про внешний интрефейс и т.д.)

[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 5:24
Цитата:
Автор: Vpolevoj
Что скажете?
Есть какие-нибудь советы и пожелания?
Неясно чем такой "интеллект" отличается от простого программирования ручками? Как собственно именно такая система ввода превращается в интеллектуальное поведение?
В частности, совсем неясно зачем блок "ДЕЛАЙ". Планы робота, его будущие действия - это задачи, которыми робот самостоятельно должен дополнять исходную задачу, исходя из своего опыта. Решать задачу значит дополнять задачу суб-задачами. Интеллект рекуррентен. Этой ключевой рекуррентности я тут не увидел.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Ориентация в пространстве
+1
Добавлено: 28 окт 13 5:38
Изменено: 29 окт 13 4:59
Цитата:
Автор: eto_ya

СЧИТАЮ ПРИВЛЕКАТЕЛЬНЫМ:
- Наглядность демонстрации работы ИИ ("Робот в лабиринте")
- Постановка конкретных задач (шагов) в виде дерева (версионное движение от малого функционала к большему)
- Реализация базовых понятий (пространство, объект, мера, время, перемещение, сознание, способности, состояние, цель, план, ресурс, деятельность, общение, обмен информацией и т.д.)
- Создание модели простого мира, предметов и существ и взаимодействия всего этого (в рамках написанной программы)
- Использование веб-технологий из-за облегченности программирования на них (php, js, html)

Спасибо, я вас понял.

Цитата:
Автор: eto_ya

СЧИТАЮ НЕ ПРИВЛЕКАТЕЛЬНЫМ:
- Написание собственных языков и интерпретаторов (это уже с избытком создано, и тратить на это время просто жалко)
- Создание некой платформы для ИИ (если я вас правильно понял, про внешний интрефейс и т.д.)

А здесь позвольте объясниться.

Зачем я взялся за написание собственного интерпретатора (зачем я вообще это придумал)?

Я уже сталкивался с таким моментом, когда человек пишущий что-то по теме ИИ выкладывает свои наработки в открытый доступ (я имею ввиду готовый код), но даже при таком акте прямо-таки феноменальной щедрости он не встречает поддержки. Поскольку разбираться в его коде мало кому понравится, а его задачи, даже если они и кажутся кому-то интересными, способны разве что развлечь, и вряд ли УВЛЕЧЬ по-настоящему. При том, что каждый участник как правило придерживается своих представлений, методик, стилей и т.д. и т.п. Так что, найти второго такого же, кто бы понял твой код с полувзгляда, и кто был бы готов "подхватить падающее знамя из твоих ослабевших рук" - это надо очень и очень постараться. Я считаю, что это практически невозможно, во всяком случае, не на этом форуме.

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

Какой же из подобной ситуации возможен выход? Ведь отдачи и взаимодействия все же хочется.

Я вижу выход в одном. Нужно всем остальным участникам форума дать в руки ИГРУШКУ, с простым, удобным и понятным интерфейсом. И тогда они может (так уж и быть) ПОИГРАЮТ в неё.

Таким образом, наша задача несколько усложняется. Теперь от нас требуется не просто написать модель Сознания (или Подсознания, например), а написать на основе этой модели ИГРУШКУ с простым интерфейсом, с тем, чтобы все желающие могли бы в неё ПОИГРАТЬ.

Вот как!

А теперь представьте, что у вас в руках новенький робот. Скажем, вы его только что купили и, принеся из магазина, распаковали. Он изначально ничего не умеет, и поэтому его нужно ЗАПРОГРАММИРОВАТЬ. А для этого у робота предусмотрен ИНТЕРФЕЙС, посредством которого вы можете вбить в его мозги любую программу (из доступных для этого робота команд). Представили?

А теперь нам нужно сделать все тоже самое, только виртуально, в виде программы.

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

А теперь, что касается "создания платформы для ИИ".

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

Вопрос создания ИИ, как я считаю, это вопрос во многом философский (причем я считаю, что на данный момент это вопрос ПРЕЖДЕ ВСЕГО философский, и лишь затем - технический и инженерный), и поэтому нам нужно не просто СОЗДАТЬ ИИ (в той или иной его модификации), а прежде всего - нам нужно СУМЕТЬ ПОКАЗАТЬ, что то что мы создаем - это и есть Интеллект, причем, в тех пределах, которые мы сами же перед собой и поставили изначально, то есть это именно тот ИИ, который мы и задумали, который мы, собственно и делали.

А как это можно показать, если до сих пор никто толком не знает что же такое Интеллект, чем его можно измерить, как можно определить что он есть, как вообще к нему подходить и т.д. Как в такой ситуации можно вообще хоть что-то делать?!! Сделай то - не знаю что! Вот что получается.

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

А вот для этого нам, по моему мнению, и потребуется ОТДЕЛИТЬ мыслительную часть (собственно интеллект) от исполнительной - той, что вы назвали "платформой". То есть, "платформа" - отдельно, а интеллект - отдельно. Не потому что я так решил или захотел, и не для того, чтобы получилась хорошая игрушка (о чем я писал выше), а для того - чтобы нам суметь показать и доказать, что у нас действительно Интеллект, причем именно такой, какой мы и хотели.

И по всему получается, что написание собственного языка-интерпретатора для программирования робота, и создание "платформы для ИИ" - это вынужденная необходимость, во всяком случае, ПОКА, на данном этапе развития строительства ИИ. Потом, я так думаю, в этом уже не будет никакой надобности. Все и без того будут понимать что к чему и откуда и куда, и уже не будет нужды каждому это наглядно показывать и объяснять. Достаточно будет предъявить готовый результат.

Сейчас, мне так кажется, одним готовым результатом никого не убедишь. Нужна наглядная демонстрация, и желательно ОЧЕНЬ ПРОСТАЯ, чтобы всем было понятно. В этом-то и заключается основная трудность. А вовсе не в написании собственно ИИ.

Трудность - в ПОНИМАНИИ. Пока же, насколько я вижу, мало кто вообще хоть что-то понимает. Что наши, что - буржуины. Все спешат, торопятся, а куда - и сами не понимают. Вот поэтому-то и нужно делать ИГРУШКИ. Или что-то очень на них похожее.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Ориентация в пространстве
Добавлено: 28 окт 13 5:48
Изменено: 28 окт 13 5:56
Цитата:
Автор: Андрей

Решать задачу значит дополнять задачу суб-задачами. Интеллект рекуррентен. Этой ключевой рекуррентности я тут не увидел.

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

Считаете, что должна быть рекуррентность - велком! Делайте рекуррентность.

Блок ДЕЛАЙ - это одна из ветвей проверки готовности результата, когда искомый результат еще не достигнут. Вот и "Делай". А что "делай"? А все то, что вы ему запрограммируете. И так, как вы запрограммируете.

В том числе, вы можете запрограммировать его САМОСТОЯТЕЛЬНОСТЬ в планировании и в осуществлении своих действий. В конце-концов, не так уж и важно как именно робот достигнет заявленного результата, важно как он будет при этом ДУМАТЬ. Вот для этого я разнес эти два блока: тот, где он ДУМАЕТ, и тот, где происходит ИСПОЛНЕНИЕ задуманного (запланированного).
[Ответ][Цитата]
 Стр.1 (19): [1]  2  3  4  5  ...  19След. > >>