nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:17



Reply to topic  [ 81 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Программирование с помощью троичной логики 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Если с Клини дело можно исправить, поискав его книги у знакомых букинистов и договориться снизить стоимость раз в пять, то с Васильевым дело - труба: найти практически невозможно. Переиздавать, разумеется, не думают.


Есть предложение найти Клини в библиотеке и снять копии с нужных страниц - то что нам надо должно занимать немного...


24 Jun 2007 19:22
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
"Метаматематики" и Васильева в Ленинской библиотеке нет. В "Логике" Клини троичная логика упоминается всего раз =)


07 Jul 2007 13:25
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Подытоживаю обсуждение последних лет:

Shaos wrote:
Итак, попробуем разобраться. Как правило в Прологе логическое ИЛИ раскладывается в параллельные утверждения:
p:-a.
p:-b.

и т.д. что означает что утверждение "p" истинно если истинно "a" или истинно если истинно "b". Кроме того ИЛИ допустимо записывать в одном утверждении используя оператор ";".

В то же время логическое И укладывается в одно утверждение:
pred:-a,b.
что значит "p" истинно если истинно "a" и истинно "b".


Shaos wrote:
Запятая (,) обозначающая в обычном Прологе И в нашем случае не может быть заменена на троичный эквивалент MIN, вместо этого предлагается следующая таблица истинности для И в ПРОТЕРЛОГе:
\ N O P
N N O N
O O O O
P N O P
расшифровывается так - если хотя бы один из аргументов неизвестность, то результат неизвестен и если все аргументы истина, то результат - истина


В некоторых источниках вышеприведённая табличка называется "конъюнкция Клини" (Kleene)

Shaos wrote:
И в гипотетическом "троичном прологе" будучи записанным аналогичным обычному Прологу образом:
p:-a,b.
будет означать что-то типа такого:
- "p" истинно, если "a" и "b" истинны;
- "p" ложно, если "a" и "b" ложны;
- "p" ложно, если "a" истинно, а "b" ложно;
- "p" ложно, если "a" ложно, а "b" истинно;
- "p" неизвестно, если "a" или "b" неизвестны.


Shaos wrote:
... ИЛИ также можно записать параллельно:
p:-a.
p:-b.

Что предположительно обозначает:
- "p" истинно, если "a" истинно (игнорируем "b");
- "p" ложно, если "a" ложно (игнорируем "b");
- "p" истинно, если "a" неизвестно, а "b" - истинно;
- "p" ложно, если "a" неизвестно, а "b" - ложно;
- "p" неизвестно, если "a" и "b" неизвестны.


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

Shaos wrote:
В связи с этим придётся переписать нашу табличку ИЛИ т.к. порядок аргументов теперь играет роль (по горизонтали откладываем первый аргумент):

\ N O P
N N N P
O N O P
P N P P

Жирным обозначен "исправленный" элемент таблицы соответствия для трилоговского ИЛИ.


на самом деле это немного спорное изменение - это надо ещё обсуждать...

Shaos wrote:
Простое перечисление положительных фактов в нашем "троичном прологе", как и Прологе обычном идёт так:
p(a).
p(b).

Что везде означает, что свойство "p" принадлежит "a" и "b".

В то же время появляется возможность перечислять отрицательные факты:
\p(c).
\p(d).

Что в случае "троичного пролога" должно интерпретироваться как точно известно, что свойство "p" не принадлежит "a" и не принадлежит "c".

Всё что не перечислено в "троичном прологе" считается неизвестным (в отличие от обычного Пролога, где неупомянутое считается ложным).


Shaos wrote:
Shaos wrote:

P.S. Мои И и ИЛИ не срастаются через НЕ (А И Б) = (НЕ А) ИЛИ (НЕ Б) - по видимому это выражение "нетроичнологичное"...


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


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

P.S. Можно попробовать использовать + и - в качестве первого символа для обозначения положительых и отрицательных фактов и правил.


23 Mar 2009 19:39
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Quote:
p:-a.
p:-b.

Что предположительно обозначает:
- "p" истинно, если "a" истинно (игнорируем "b");
- "p" ложно, если "a" ложно (игнорируем "b");

А вы не забыли, что решений может быть несколько, и игнорировать "b" не совсем корректно. В общем случае будет несколько истинных решений, несколько ложных и несколько решений с признаком недоказанности. Хотя, последние можно отбросить, аналогично тому, как нормальный Пролог отбрасывает ложные решения. Вопрос только в том, как трактовать наличие одновременно истинных и ложных решений для терма с определённым (одинаковым) набором агрументов в троичном Прологе? :) Я думаю в этом случае можно было бы установить признак недоказанности и отбросить таковые решения, либо ввести признак противоречия.


03 Apr 2009 13:43
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
b2m wrote:
Quote:
p:-a.
p:-b.

Что предположительно обозначает:
- "p" истинно, если "a" истинно (игнорируем "b");
- "p" ложно, если "a" ложно (игнорируем "b");

А вы не забыли, что решений может быть несколько, и игнорировать "b" не совсем корректно. В общем случае будет несколько истинных решений, несколько ложных и несколько решений с признаком недоказанности. Хотя, последние можно отбросить, аналогично тому, как нормальный Пролог отбрасывает ложные решения. Вопрос только в том, как трактовать наличие одновременно истинных и ложных решений для терма с определённым (одинаковым) набором агрументов в троичном Прологе? :) Я думаю в этом случае можно было бы установить признак недоказанности и отбросить таковые решения, либо ввести признак противоречия.


Если решений несколько - делаем как в прологе: юзер сообщает системе что ему нужно следующее решение и пролог его ему выдаёт :)

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


03 Apr 2009 20:39
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Quote:
Пример программы на ПРОТЕРЛОГе:

boy(john). % John это мальчик
\boy(nora). % Nora это НЕ мальчик
girl(X):-
\boy(X). % девочка это тот, кто не является мальчиком

?- girl(nora).
правильный ответ yes
?- girl(anybody).
правильный ответ unknown
?- girl(X).
правильный ответ X=nora

Эквивалентная программа на ПРОЛОГе:

boy(john).
boy(nora):-fail.
girl(X):-
not(boy(X)).


Эквивалентная программа на ПРОЛОГе:
boy(john,yes).
boy(nora,no).
girl(X,R1):-my_not(R1,R2),boy(X,R2).
my_not(yes,no).
my_not(no,yes).

Нужно только иметь ввиду, что ответ Пролога No означает unknown, а при ответе Yes нужно смотреть значение второго параметра.


04 Apr 2009 00:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
b2m wrote:
Эквивалентная программа на ПРОЛОГе:
boy(john,yes).
boy(nora,no).
girl(X,R1):-my_not(R1,R2),boy(X,R2).
my_not(yes,no).
my_not(no,yes).

Нужно только иметь ввиду, что ответ Пролога No означает unknown, а при ответе Yes нужно смотреть значение второго параметра.


Это скорее не "эквивалентная" программа, а программа на обычном прологе, которая показывает как бы работал троичный пролог ;)


04 Apr 2009 22:14
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Кстати, ответ Пролога Yes/No нужно понимать не как истина/ложь, а как найдено/не найдено. А вот что конкретно найдено (или нет) зависит уже от программы. Это к вопросу о троичности. Интересно, какой третий ответ возможен в ряду: найдено, не найдено, ...? ;)


05 Apr 2009 10:32
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Никто не спорит, что на обычном прологе можно написать интерпретатор троичного :)
Просто хотелось бы сразу на уровне языка иметь возможность получать троичность:
- найдено положительное решение;
- найдено отрицательное решение;
- решение не найдено т.е. неизвестно...


05 Apr 2009 15:55
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Я почему-то думал что текущая реализация даёт ответ вроде "На основании имеющихся данных решение имеется" и "Имеющихся данных недостаточно или ответ парадоксален".

Соответственно в троичной реализации мы имеем возможность разделить второй вариант на два полноценных и независимых: "Имеющихся данных недостаточно (для однозначного ответа)" и "Ответ парадоксален".


06 Apr 2009 15:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Ну насколько я знаю обычный пролог не оперирует понятием "парадоксальности" - ответ либо есть, либо нет (невозможно сформулировать на основе имеющейся базы знаний). Троичный же пролог будет предлагать три вариант - ответ положительный, ответ отрицательный и ответ неизвестен (невозможно сформулировать на основе имеющейся базы знаний).


09 Apr 2009 13:13
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Shaos wrote:
обычный пролог не оперирует понятием "парадоксальности" - ответ либо есть, либо нет

Насколько я понимаю, он отвечает: утверждение доказано - да/нет.

Shaos wrote:
Троичный же пролог будет предлагать три вариант - ответ положительный, ответ отрицательный и ответ неизвестен (невозможно сформулировать на основе имеющейся базы знаний).

Т.е. троичный пролог должен отвечать: утверждение доказано - да/нет/доказано обратное.

P.S. Как-то странно отсортированы темы в этом форуме, обычно ведь по дате последнего сообщения сортируется?

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


21 Sep 2012 02:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
P.S. Как-то странно отсортированы темы в этом форуме, обычно ведь по дате последнего сообщения сортируется?


Да - это сюрприз для меня, что phpBB сортирует топики не по дате последнего сообщения, а по ИДЕНТИФИКАТОРУ последнего сообщения (post_id), который для всех эммигрантов с Ternary.info находится в маленьких номерах (1...3000) и заведомо меньше топиков-старожилов...

_________________
:dj: https://mastodon.social/@Shaos


15 Aug 2021 17:42
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Quote:
Тема поднималась пользователем Shaos 15 авг 2021 17:42.

Хм, а как я это сделал? Я вроде просто линк хотел в телегу поставить, а оно вот взяло и "бампнулось"...

P.S. А всё - увидел. Слева вверху под названием топика есть ряд опций, одна из которых "Поднять тему" (она правда не у всех тем появляется)

_________________
:dj: https://mastodon.social/@Shaos


15 Aug 2021 20:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Quote:
Тема поднималась пользователем Shaos 15 авг 2021 17:42.

Хм, а как я это сделал? Я вроде просто линк хотел в телегу поставить, а оно вот взяло и "бампнулось"...

P.S. А всё - увидел. Слева вверху под названием топика есть ряд опций, одна из которых "Поднять тему" (она правда не у всех тем появляется)

А я тебя спрашивал в личку как-то про опцию Поднять тему.
Но ты мне ответил, что такой опции вроде нет. 8)

Отчасти правда - порой она есть, а порой не найдёшь, принцип появления опции непонятен...

_________________
iLavr


16 Aug 2021 00:24
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 81 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.