Вверх ↑
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 131
#1: 2014-12-03 22:59:37 ЛС | профиль | цитата
Была задачка, которая плохо решалась не только на кубиках, но и на дельфи.
Даже в 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".
Вроде всё подробно рассказал.
ЗЫ.
Промахнулся темой.
Надо в тему Делаем компоненты.
карма: 6

2
Голосовали:andrestudio, Minkovsky
vip
#1.1контекстная реклама от партнеров
Ответов: 963
Рейтинг: 12
#2: 2014-12-04 03:57:28 ЛС | профиль | цитата
А Лисп не пробовал к хайасму прикрутить ?...
Вроде как больше подходит ....
карма: 0

0
Ответов: 2059
Рейтинг: 131
#3: 2014-12-04 08:14:35 ЛС | профиль | цитата
Да, согласен.
Вроде, как функциональный язык.
Но чтобы прикручивать чего то, нужны причины, а таковых не было.
Да и сам язык нужно знать на уровне мышления, а я так, только на лиспе баловался.
Вот если получится с прологом, то и нейронные сети можно прикрутить.
Например Cerebrum в связке с прологом дают крутые результаты в лингвистических программах.
У них и скрипты программ почти один в один Стыковка идеальная.
P,S.
У кого не запустилось, то файл DLLLoader.pas есть в компоненте CallDllEx.
P.S.
У соседа на даче, к яблоне привито ещё 3-4 вида, груша,айва...

карма: 6

0
Ответов: 963
Рейтинг: 12
#4: 2014-12-04 12:21:03 ЛС | профиль | цитата
Гибрид Нейросети с прологом? Вообще-то можно, однако, есть пути и попроще ...

http://forum.hiasm.com/forum.html?q=3&p=70997#p70997

http://forum.hiasm.com/forum.html?q=3&p=70904#p70904

карма: 0

1
Голосовали:flint2
Ответов: 2059
Рейтинг: 131
#5: 2014-12-04 15:11:42 ЛС | профиль | цитата
Честно говоря хороших реализаций нейросети мало, почти нет - единицы.
Всё больше показуха и убогие поделки.
Вот "настоящая" и рабочая. О, не нашел ссылку, всё и вся становится чего-то хуже и хуже. Поэтому так:
https://yadi.sk/d/tFVNTTnNd9VJ8
На ней без усилий строится морфология и синтаксис русского языка (про другие я молчу) на основе словаря Зализняка.
(это я к примеру. Разрешение(решение) омонимии задача не простая. Попробуй подобное сделать на C++, или на Delphi и какой нибудь DB. Могу выложить, если интересно. Из раздела - Нигде не купишь.)
Единственный сдерживающий фактор - это установленный net framework. Но вроде это стало дефакто.
Со свистом пошло бы в пакете C# .NET на базе RTCG.
Но по закону масс - прилепляться чего-то будет к большему пакету. По этому придется привинчивать к Delphi, а к C# .NET и привинчивать не надо. Просто штампуй компоненты, да и всё тут. (Был бы помоложе, непременно занимался-бы этим пакетом. Я космополит в языках, по причине - что толком ни одного не знаю. Служил в Польше и Германии - речь понимаю, а сказать что-то - с трудом. В том числе и на Delphi).

Вот ещё http://www.basegroup.ru/download/ на первый взгляд более-мене, но как понимаю, узко заточенные под задачи, что не есть хорошо.
Нужна общепралетарская и олдовая.
Первая ссылка больше нравится. Хоть и уже старенькая, но старый конь борозды не портит.
карма: 6

0
Ответов: 8886
Рейтинг: 823
#6: 2014-12-04 15:51:03 ЛС | профиль | цитата
flint2 писал(а):
Поэтому так:
И так не скачивается, даже на Яндекс-диск не копируется, а посмотреть супер-пупер нейросеть ох как хочется Вообще-то макетировать нейросеть на обычном компьютере бессмысленно, она должна работать параллельно.
(Макет трёхуровневой выкладывал здесь, может чего нового )
карма: 19

0
Ответов: 963
Рейтинг: 12
#7: 2014-12-04 16:01:35 ЛС | профиль | цитата
Честно говоря хороших реализаций нейросети мало, почти нет - единицы.
Всё больше показуха и убогие поделки.
Вот "настоящая" и рабочая. О, не нашел ссылку, всё и вся становится чего-то хуже. Поэтому так:
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

0
Ответов: 2059
Рейтинг: 131
#8: 2014-12-04 16:58:11 ЛС | профиль | цитата
Леонид
А так?
https://yadi.sk/d/oWAWoZt9d9caF
а посмотреть супер-пупер нейросеть ох как хочется

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

Согласен. Вообще макеты - это не рабочие вещи. Нужны рабочие и простые и олдовые, как калашников.

AlexKir
Вообще интересная задача использовать "не четкую логику" вместо четкой

Тык чё я и начал. Только чёткая тоже нужна и думаю на несколько порядков главнее.
По сему не "вместо", а "и". По мере понимания задачи. (Интересная вещь получается - "или", "и","вместо" - это реализуемо)

3д движок с применением нечеткой логики и нейро сетей

Думаю, что это две большие разницы. Думаю без разницы, кто принимает Result := Нечёткое_решение.
нам ненужно знать что именно происходит нам не нужно возится с точной физической моделью процессов

Нам нужно знать что именно происходит. И мы можем знать, что происходит в каждом узле. А то как-же?
...Я понял.
карма: 6

0
Ответов: 963
Рейтинг: 12
#9: 2014-12-04 17:47:39 ЛС | профиль | цитата
1 Четкая нужна для "калибровки" и проверки нечеткой ...
2 "3Д нейеро-движок" По идее может "перескакивать через этапы" ...
Если мы имеем несколько фотографий комнаты мы можем легок представить ее вид допустим с потолка ... Не так ли? Так-же по идеи должен действовать и нейро движок скормили ему несколько набросков лабиринта а он уже "додумает вид" из любой точки ... Предметы ? Есть аналоги в базе ? Рисуем что-то похожее ..
По сути при развитой базе образов можно обойтись словесным описанием ...

"Мрачный фиолетовый коридор с книжными полками и большим зеркалом поворачивал налево .."
Или если уж на то пошло :
"Наконец гроб вдруг сорвался с своего места и со свистом начал летать по всей церкви, крестя во всех направлениях воздух. Философ видел его почти над головою, но вместе с тем видел, что он не мог зацепить круга, им очерченного, и усилил свои заклинания. Гроб грянулся на средине церкви и остался неподвижным. Труп опять поднялся из него, синий, позеленевший. Но в то время послышался отдаленный крик петуха. Труп опустился в гроб и захлопнулся гробовою крышкою."(С)ВИй


Ну или :
".. Светлым-пресветлым днем, когда весело порхали бабочки, мотыльки, осы, совы, лисы... Суслик шел домой.. шел-шел и никого не встретил.. "
карма: 0

0
Ответов: 2059
Рейтинг: 131
#10: 2014-12-04 18:37:56 ЛС | профиль | цитата
Не так ли?

Не могу ответить. Надо пробовать.
Наверное.
У меня другие ассоциации с прологом и нейронной сетью.
1. пролог - это Backtracking - это сек возвратов.
2. нейронная сеть - это частный случай прологовского дерева(даже не симметричного) ( !!! не List- список.), но не с весами в узлах, а порогом(комаратор), который задаётся обучением.(Можно рассуждать,надо понять. Язык у меня карявый)).
На пальцах, я так понимаю.
карма: 6

0
Ответов: 8886
Рейтинг: 823
#11: 2014-12-04 18:51:11 ЛС | профиль | цитата
flint2 писал(а):
А так?
https://yadi.sk/d/oWAWoZt9d9caF
Кнопка "Скачать" нажимается, но ничего не происходит
------------ Дoбавленo в 19.51:
Через Google Chrome скачалось, IE на помойку
карма: 19

0
Ответов: 2059
Рейтинг: 131
#12: 2014-12-04 18:58:08 ЛС | профиль | цитата
AlexKir
У тебя скачалоь?
Выложи.
Леонид
Как сделать?
Давай по частям в Файлообмен?
карма: 6

0
Ответов: 4612
Рейтинг: 746
#13: 2014-12-04 19:01:30 ЛС | профиль | цитата
Залейте на rghost.net, чего мучитесь.
карма: 26

0
Ответов: 2059
Рейтинг: 131
#14: 2014-12-04 20:11:32 ЛС | профиль | цитата
Netspirit
Спасибо!
http://rghost.ru/59421934
------------ Дoбавленo в 21.11:
AlexKir
нейеро-движок говоит на солько стакан пуст, а пролог говорит - где соломку подстелить..
Но вместе могут ответить на вопросы - "Были такие 'псиологические практикумы' в журналах" - что здесь лишнее, или наоборот.
Самое страшное в том, что примитивный рефлекс( не собака Павлоа), очень дорого стоит в объёмах памяти.
Само понятие рефлекса заработало. Но так каряво... Не красивые самолёты не могут летать.
карма: 6

0
Ответов: 8886
Рейтинг: 823
#15: 2014-12-04 21:59:28 ЛС | профиль | цитата
flint2, это у меня IE-8, устарел не работает как надо.
Леонид писал(а):
Через Google Chrome скачалось

карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)