LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Я ещё делал некоторые эксперименты с ИИ. Делал универсальный солвер задач сформулированный в терминах пространства состояний, начального состояния, набора действий, доступных в определённом состоянии и функции оценки достижения результата для состояния. Солвер хранит дерево поиска код состояния -> объект нод состояния. Нод хранит указатель на предыдущее состояние. Поиск происходит методом вроде A* (опционально можно дать эвристику расстояния от текущего состояния до результата).

Делал солвер для Сокобана, пример в Википедии сразу решает. Вообще забавно наблюдать как он много чего решает и это даже выгладит осмысленно. Такое он уже не решает. Довольно интересный пример потому что с помощью декомпозиции на более простые задачи человеку его несложно решить. Если немного помочь алгоритму, то он проходит определённые участки уровня. Возникла идея рекурсивно делать новые задачи со своим пространством состояний, для которых подзадачи будут элементарными действиями. Можно даже выдумать задачу генерации задач.

Также делал универсальную структуру данных для кодирования чего угодно. Она состоит из нодов, условно называемых «словами» по историческим причинам, каждое слово имеет набор свойств, ключом и значением которых также выступают слова. Значение свойства можно получить по ключу, например #1[#2] -> #3, где #1, #2, #3 – слова. Сами слова имеют только уникальный номер, их можно только сравнивать на равно/не равно. Есть таблица корневых слов, через которые происходит обращение ко всему. Слова собираются сборщиком мусора, если на них нет пути из корневых слов.

Для этой структуры данных есть язык программирования. Он основан на ассоциациях, в базовом варианте в нём даже арифметики и чисел нет, только слова. Числа можно сконструировать из слов с помощью списка. Сам байт код (словокод?) языка тоже состоит из слов. Редактор исходников графический.

Была идея портировать солвер из первого пункта на эту систему. Она позволяет гибко описывать задачи и генерировать новые задачи, задачи по генерации задач и т.д..

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

Исправление X512, :

Я ещё делал некоторые эксперименты с ИИ. Делал универсальный солвер задач сформулированный в терминах пространства состояний, начального состояния, набора действий, доступных в определённом состоянии и функции оценки достижения результата для состояния. Солвер хранит дерево поиска код состояния -> объект нод состояния. Нод хранит указатель на предыдущее состояние. Поиск происходит методом вроде A* (опционально можно дать эвристику расстояния от текущего состояния до результата).

Делал солвер для Сокобана, пример в Википедии сразу решает. Вообще забавно наблюдать как он много чего решает и это даже выгладит осмысленно. Такое он уже не решает. Довольно интересный пример потому что с помощью декомпозиции на более простые задачи человеку его несложно решить. Если немного помочь алгоритму, то он проходит определённые участки уровня. Возникла идея рекурсивно делать новые задачи со своим пространством состояний, для которых подзадачи будут элементарными действиями. Можно даже выдумать задачу генерации задач.

Также делал универсальную структуру данных для кодирования чего угодно. Она состоит из нодов, условно называемых «словами» по историческим причинам, каждое слово имеет набор свойств, ключом и значением которых также выступают слова. Значение свойства можно получить по ключу, например #1[#2] -> #3, где #1, #2, #3 – слова. Сами слова имеют только уникальный номер, их можно только сравнивать на равно/не равно. Есть таблица корневых слов, через которые происходит обращение ко всему. Слова собираются сборщиком мусора, если на них нет пути из корневых слов.

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

Была идея портировать солвер из первого пункта на эту систему. Она позволяет гибко описывать задачи и генерировать новые задачи, задачи по генерации задач и т.д..

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

Исправление X512, :

Я ещё делал некоторые эксперименты с ИИ. Делал универсальный солвер задач сформулированный в терминах пространства состояний, начального состояния, набора действий, доступных в определённом состоянии и функции оценки достижения результата для состояния. Солвер хранит дерево поиска код состояния -> объект нод состояния. Нод хранит указатель на предыдущее состояние. Поиск происходит методом вроде A* (опционально можно дать эвристику расстояния от текущего состояния до результата).

Делал солвер для Сокобана, пример в Википедии сразу решает. Вообще забавно наблюдать как он много чего решает и это даже выгладит осмысленно. Такое он уже не решает. Довольно интересный пример потому что с помощью декомпозиции на более простые задачи человеку его несложно решить. Если немного помочь алгоритму, то он проходит определённые участки уровня. Возникла идея рекурсивно делать новые задачи со своим пространством состояний, для которых подзадачи будут элементарными действиями. Можно даже выдумать задачу генерации задач.

Также делал универсальную структуру данных для кодирования чего угодно. Она состоит из нодов, условно называемых «словами» по историческим причинам, каждое слово имеет набор свойств, ключом и значением которых также выступают слова. Значение свойства можно получить по ключу, например #1[#2] -> #3, где #1, #2, #3 – слова. Сами слова имеют только уникальный номер, их можно только сравнивать на равно/не равно. Есть таблица корневых слов, через которые происходит обращение ко всему. Слова собираются сборщиком мусора, если на них нет пути из корневых слов.

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

Была идея портировать солвер из первого пункта на эту систему. Она позволяет гибко описывать задачи и генерировать новые задачи, задачи по генерации задач и т.д..

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

Исходная версия X512, :

Я ещё делал некоторые эксперименты с ИИ. Делал универсальный солвер задач сформулированный в терминах пространства состояний, начального состояния, набора действий, доступных в определённом состоянии и функции оценки достижения результата для состояния. Солвер хранит дерево поиска код состояния -> объект нод состояния. Нод хранит указатель на предыдущее состояние. Поиск происходит методом вроде A* (опционально можно дать эвристику расстояния от текущего состояния до результата).

Делал солвер для Сокобана, пример в Википедии сразу решает. Вообще забавно наблюдать как он много чего решает и это даже выгладит осмысленно. Такое он уже не решает. Довольно интересный пример потому что с помощью декомпозиции на более простые задачи человеку его несложно решить. Если немного помочь алгоритму, то он проходит определённые участки уровня. Возникла идея рекурсивно делать новые задачи со своим пространством состояний, для которых подзадачи будут элементарными действиями. Можно даже выдумать задачу генерации задач.

Также делал универсальную структуру данных для кодирования чего угодно. Она состоит из нодов, условно называемых «словами» по историческим причинам, каждое слово имеет набор свойств, ключом и значением которых также выступают слова. Значение свойства можно получить по ключу, например #1[#2] -> #3, где #1, #2, #3 – слова. Сами слова имеют только уникальный номер, их можно только сравнивать на равно/не равно. Есть таблица корневых слов, через которые происходит обращение ко всему. Слова собираются сборщиком мусора, если на них нет пути из корневых слов.

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

Была идея портировать солвер из первого пункта на эту систему. Она позволяет гибко описывать задачи и генерировать новые задачи, задачи по генерации задач и т.д..

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