Была задачка, которая плохо решалась не только на кубиках, но и на дельфи.
Даже в IC получалось громоздко...
Прицепил пролог к Дельфи и написал всё в IC для дельфи.
Решил - не пропадать добру.
Попробовал перевести всё в компоненты.
Вот чего получилось:
https://yadi.sk/d/3u6nu7ifdACae
Пока проба пера.
Нет компонентов:
Функции и параметры предикатов;
Преобразование строк и термов;
Создание типов Пролога;
Получение значения термов Пролога;
Работа с функторами;
Работа со списком;
Работа с потоками.
Собственно они сделаны, нужно оформить. Иконки там. Подумать, какие точки лишние, или не хватает итд.
+ unit, чтобы писать в IC в коде дельфи.
Собственно, а оно кому нужно?
Пояснения:
Кто не знает с чем его едят - http://www.mari-el.ru/mmlab/home/prolog/study_l.html
Диалект полностью совпадает с amzi пролог - http://www.amzi.com/ , тут и docs.
!!! Скомпилированные базы знаний *.xpl от amzi не подходят, и пытаться не надо!!!
В архиве два компонента. Устанавливать как обычно.
Файл Prolog.pas кинуть в ..\Elements\delphi\code\.
clear.xpl - Пустая база. Нужна для работы. Должна находиться с вашей программой.
database.pro и example.pro собственно примеры программ. Загружаем и играемся.
Так как парсера входного текста нет, то предложение вводится одной строкой.
prove( Attr is Value and Rest ) :-
getav(Attr, Value),
prove(Rest). Это не правильно.
prove( Attr is Value and Rest ) :-getav(Attr, Value),prove(Rest). Это правильно.
По той же причине и комментарии
% The rest of the code is the custom inference engine. Given
% the goal of 'proving' an attribute value pair, the system - Не работают.
Двуспальные и более вопросы задаются через doExecQuery.
Вот так gizmo(a,X),easy(X). , а не так ?-gizmo(a,X),easy(X).
Односпальные и через кнопку "???" и "All" - все возможные варианты ответов и через кнопку "?=1/0".
Вроде всё подробно рассказал.
ЗЫ.
Промахнулся темой.
Надо в тему Делаем компоненты.
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 132
|
|||
карма: 6 |
| ||
Голосовали: | andrestudio, Minkovsky |
Ответов: 964
Рейтинг: 12
|
|||
А Лисп не пробовал к хайасму прикрутить ?...
Вроде как больше подходит .... |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Да, согласен.
Вроде, как функциональный язык. Но чтобы прикручивать чего то, нужны причины, а таковых не было. Да и сам язык нужно знать на уровне мышления, а я так, только на лиспе баловался. Вот если получится с прологом, то и нейронные сети можно прикрутить. Например Cerebrum в связке с прологом дают крутые результаты в лингвистических программах. У них и скрипты программ почти один в один Стыковка идеальная. P,S. У кого не запустилось, то файл DLLLoader.pas есть в компоненте CallDllEx. P.S. У соседа на даче, к яблоне привито ещё 3-4 вида, груша,айва... |
|||
карма: 6 |
|
Ответов: 964
Рейтинг: 12
|
|||
Гибрид Нейросети с прологом? Вообще-то можно, однако, есть пути и попроще ...
http://forum.hiasm.com/forum.html?q=3&p=70997#p70997 http://forum.hiasm.com/forum.html?q=3&p=70904#p70904 |
|||
карма: 0 |
| ||
Голосовали: | flint2 |
Ответов: 2059
Рейтинг: 132
|
|||
Честно говоря хороших реализаций нейросети мало, почти нет - единицы.
Всё больше показуха и убогие поделки. Вот "настоящая" и рабочая. О, не нашел ссылку, всё и вся становится чего-то хуже и хуже. Поэтому так: https://yadi.sk/d/tFVNTTnNd9VJ8 На ней без усилий строится морфология и синтаксис русского языка (про другие я молчу) на основе словаря Зализняка. (это я к примеру. Разрешение(решение) омонимии задача не простая. Попробуй подобное сделать на C++, или на Delphi и какой нибудь DB. Могу выложить, если интересно. Из раздела - Нигде не купишь.) Единственный сдерживающий фактор - это установленный net framework. Но вроде это стало дефакто. Со свистом пошло бы в пакете C# .NET на базе RTCG. Но по закону масс - прилепляться чего-то будет к большему пакету. По этому придется привинчивать к Delphi, а к C# .NET и привинчивать не надо. Просто штампуй компоненты, да и всё тут. (Был бы помоложе, непременно занимался-бы этим пакетом. Я космополит в языках, по причине - что толком ни одного не знаю. Служил в Польше и Германии - речь понимаю, а сказать что-то - с трудом. В том числе и на Delphi). Вот ещё http://www.basegroup.ru/download/ на первый взгляд более-мене, но как понимаю, узко заточенные под задачи, что не есть хорошо. Нужна общепралетарская и олдовая. Первая ссылка больше нравится. Хоть и уже старенькая, но старый конь борозды не портит. |
|||
карма: 6 |
|
Ответов: 8923
Рейтинг: 823
|
|||
flint2 писал(а): Поэтому так:(Макет трёхуровневой выкладывал здесь, может чего нового ) |
|||
карма: 19 |
|
Ответов: 964
Рейтинг: 12
|
|||
Честно говоря хороших реализаций нейросети мало, почти нет - единицы. Всё больше показуха и убогие поделки. Вот "настоящая" и рабочая. О, не нашел ссылку, всё и вся становится чего-то хуже. Поэтому так: https://yadi.sk/d/tFVNTTnNd9VJ8 На ней без усилий строится морфология и синтаксис русского языка (про другие я молчу) на основе словаря Зализняка. (это я к примеру. Разрешение(решение) омонимии задача не простая. Попробуй подобное сделать на C++, или на Delphi и какой нибудь DB. Могу выложить, если интересно. Из раздела - Нигде не купишь.) Единственный сдерживающий фактор - это установленный net framework. Но вроде это стало дефакто. Со свистом пошло бы в пакете C# .NET на базе RTCG. Но по закону масс - прилепляться чего-то будет к большему пакету. По этому придется привинчивать к Delphi, а к C# .NET и привинчивать не надо. Просто штампуй компоненты, да и всё тут. (Был бы помоложе, непременно занимался-бы этим пакетом. Я космополит в языках, по причине - что толком ни одного не знаю. Служил в Польше и Германии - речь понимаю, а сказать что-то - с трудом. В том числе и на Delphi). Вот ещё http://www.basegroup.ru/download/ на первый взгляд более-мене, но как понимаю, узко заточенные под задачи, что не есть хорошо. Нужна общепралетарская и олдовая. Первая ссылка больше нравится. Хоть и уже старенькая, но старый конь борозды не портит. http://www.basegroup.ru ? О да у них и исходники на дельфи были ... Вообще интересная задача использовать "не четкую логику" вместо четкой пример написать софтовый 3д движок с применением нечеткой логики и нейро сетей Или моделирование с применение нейро сетей вместо полиномов (это интересно тем что можно обходится минимумом данных ) или "ГИС моделирование" когда распознаются ситуации и их причины и различное их прогнозирование.... Главная особенность методика "дрессировки черного ящика" нам ненужно знать что именно происходит нам не нужно возится с точной физической моделью процессов... Мы знаем что может быть на входе и знаем что хотим получать на выходе .. Как устроена искусственная Нейросеть мы знаем но вот что именно отложится внутри нам знать не очень то нужно . Мы просто устанавливаем связи "Ситуация похожа А" значит делаем "что-то похожее на Б" В принципе можно "от трассировать" все связи и получить формулу но тогда теряется адаптивность нейро сеть в принципе способна пусть и неточно но в целом верно реагировать на ситуации не предусмотренные заранее ... ЗЫ "Повторение мать ваша ! " Дежавью ? Зы Зы Скачалось нормально |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Леонид
А так? https://yadi.sk/d/oWAWoZt9d9caF а посмотреть супер-пупер нейросеть ох как хочется Ну не супер-пупер. Просто это лучше, что мне попадалось. Главное предельно просто. Как деревья задавать по слоям. Вообще-то макетировать нейросеть на обычном компьютере бессмысленно Согласен. Вообще макеты - это не рабочие вещи. Нужны рабочие и простые и олдовые, как калашников. AlexKir Вообще интересная задача использовать "не четкую логику" вместо четкой Тык чё я и начал. Только чёткая тоже нужна и думаю на несколько порядков главнее. По сему не "вместо", а "и". По мере понимания задачи. (Интересная вещь получается - "или", "и","вместо" - это реализуемо) 3д движок с применением нечеткой логики и нейро сетей Думаю, что это две большие разницы. Думаю без разницы, кто принимает Result := Нечёткое_решение. нам ненужно знать что именно происходит нам не нужно возится с точной физической моделью процессов Нам нужно знать что именно происходит. И мы можем знать, что происходит в каждом узле. А то как-же? ...Я понял. |
|||
карма: 6 |
|
Ответов: 964
Рейтинг: 12
|
|||
1 Четкая нужна для "калибровки" и проверки нечеткой ...
2 "3Д нейеро-движок" По идее может "перескакивать через этапы" ... Если мы имеем несколько фотографий комнаты мы можем легок представить ее вид допустим с потолка ... Не так ли? Так-же по идеи должен действовать и нейро движок скормили ему несколько набросков лабиринта а он уже "додумает вид" из любой точки ... Предметы ? Есть аналоги в базе ? Рисуем что-то похожее .. По сути при развитой базе образов можно обойтись словесным описанием ... "Мрачный фиолетовый коридор с книжными полками и большим зеркалом поворачивал налево .." Или если уж на то пошло : "Наконец гроб вдруг сорвался с своего места и со свистом начал летать по всей церкви, крестя во всех направлениях воздух. Философ видел его почти над головою, но вместе с тем видел, что он не мог зацепить круга, им очерченного, и усилил свои заклинания. Гроб грянулся на средине церкви и остался неподвижным. Труп опять поднялся из него, синий, позеленевший. Но в то время послышался отдаленный крик петуха. Труп опустился в гроб и захлопнулся гробовою крышкою."(С)ВИй Ну или : ".. Светлым-пресветлым днем, когда весело порхали бабочки, мотыльки, осы, совы, лисы... Суслик шел домой.. шел-шел и никого не встретил.. " |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Не так ли? Не могу ответить. Надо пробовать. Наверное. У меня другие ассоциации с прологом и нейронной сетью. 1. пролог - это Backtracking - это сек возвратов. 2. нейронная сеть - это частный случай прологовского дерева(даже не симметричного) ( !!! не List- список.), но не с весами в узлах, а порогом(комаратор), который задаётся обучением.(Можно рассуждать,надо понять. Язык у меня карявый)). На пальцах, я так понимаю. |
|||
карма: 6 |
|
Ответов: 8923
Рейтинг: 823
|
|||
flint2 писал(а): А так?
https://yadi.sk/d/oWAWoZt9d9caF ------------ Дoбавленo в 19.51: Через Google Chrome скачалось, IE на помойку |
|||
карма: 19 |
|
Ответов: 2059
Рейтинг: 132
|
|||
AlexKir
У тебя скачалоь? Выложи. Леонид Как сделать? Давай по частям в Файлообмен? |
|||
карма: 6 |
|
Ответов: 4629
Рейтинг: 749
|
|||
Залейте на rghost.net, чего мучитесь.
|
|||
карма: 26 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Netspirit
Спасибо! http://rghost.ru/59421934 ------------ Дoбавленo в 21.11: AlexKir нейеро-движок говоит на солько стакан пуст, а пролог говорит - где соломку подстелить.. Но вместе могут ответить на вопросы - "Были такие 'псиологические практикумы' в журналах" - что здесь лишнее, или наоборот. Самое страшное в том, что примитивный рефлекс( не собака Павлоа), очень дорого стоит в объёмах памяти. Само понятие рефлекса заработало. Но так каряво... Не красивые самолёты не могут летать. |
|||
карма: 6 |
|
Ответов: 8923
Рейтинг: 823
|
|||
flint2, это у меня IE-8, устарел не работает как надо.
Леонид писал(а): Через Google Chrome скачалось |
|||
карма: 19 |
|