nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 25 Apr 2024 01:18



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: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:
Mac Buster wrote:
Вообще третье состояние не совсем не определено. Совершенно точно известно, что это "не истина" и "не ложь".


В данном случае нам проще раздать значения таким образом:
P - истина (true в терминах Пролога)
O - неизвестно (unknown)
N - ложь (fail в терминах Пролога)

Мы можем ввести оператор \ обозначающий отрицание, который превращал бы истину в ложь, ложь в истину, а неизвестность оставлял бы неизвестностью

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

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


Если расставить логические значения по Брусенцову:
P - истина (true в терминах Пролога)
O - ложь (fail в терминах Пролога)
N - неизвестно (unknown)
то мои таблицы получаются аналогичными MIN (И) и MAX (ИЛИ)


Last edited by Shaos on 20 Sep 2012 20:39, edited 1 time in total.



03 Jun 2007 10:17
Profile WWW
Retired

Joined: 03 Aug 2003 22:37
Posts: 1474
Location: Moscow
Reply with quote
Интересное совпадение. Буквально на днях обдумывал варианты реализации машины вывода.


03 Jun 2007 12:40
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Mac Buster wrote:
Интересное совпадение. Буквально на днях обдумывал варианты реализации машины вывода.


А что обдумывать? Делать надо - по аналогии с Прологом, но с новыми правилами. Кстати тот сайт что сбил меня с толку уже опять не существует...


03 Jun 2007 17:11
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Mac Buster wrote:
Вообще третье состояние не совсем не определено. Совершенно точно известно, что это "не истина" и "не ложь".


В данном случае нам проще раздать значения таким образом:
P - истина (true в терминах Пролога)
O - неизвестно (unknown)
N - ложь (fail в терминах Пролога)

Мы можем ввести оператор \ обозначающий отрицание, который превращал бы истину в ложь, ложь в истину, а неизвестность оставлял бы неизвестностью

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

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


Если расставить логические значения по Брусенцову:
P - истина (true в терминах Пролога)
O - ложь (fail в терминах Пролога)
N - неизвестно (unknown)
то мои таблицы получаются аналогичными MIN (И) и MAX (ИЛИ)


Вспомнил почему я выбрал первоначальную расстановку - при ней отрицание работает как надо (!P=N, !O=O, !N=P), а в случае "брусенцовской" расстановки отрицание становится бессмысленным (не-истина=неизвестно, не-ложь=ложь, не-неизвестно=истина).


Last edited by Shaos on 20 Sep 2012 20:39, edited 1 time in total.



03 Jun 2007 17:18
Profile WWW
Admin
User avatar

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


03 Jun 2007 17:50
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Итак, попробуем разобраться. Как правило в Прологе логическое ИЛИ раскладывается в параллельные утверждения:
p:-a.
p:-b.

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

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

Если пытатся сделать что-то аналогичное в нашем гипотетическом "троичном прологе", то ИЛИ также можно записать параллельно:
p:-a.
p:-b.

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

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

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

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

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

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

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


03 Jun 2007 18:13
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:

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



Вот тут - http://arvi.livejournal.com/144849.html - вышеприведённая табличка называется "конъюнкция Клини" (написано американец - интересно как в оригинале его фамилия звучит?)

Вот тут - http://forums.airbase.ru/viewtopic.php?id=22443&p=1 - в форуме 2003 года автор приводит аналогичные моим таблички (правда он потом перешёл на обычные MIN и MAX т.к. смешал вместе троичную логику и троичные вычисления)

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


03 Jun 2007 19:27
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:

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


Вот тут - http://arvi.livejournal.com/144849.html - вышеприведённая табличка называется "конъюнкция Клини" (написано американец - интересно как в оригинале его фамилия звучит?)


Нашёл:

Quote:
Стивен Коул Клини (англ. Stephen Cole Kleene; 5 января 1909 - 25 января 1994) - американский математик, чьи работы совместно с работами Алонзо Чёрча, Курта Гёделя и Алана Тьюринга дали начало разделу математической логики в теории вычислимости. Кроме того, известен изобретением регулярных выражений. Его именем названы Алгебра Клини, Звёздочка Клини, теорема Клини о рекурсии, теорема Клини о неподвижной точке. Кроме того, известны его работы в области интуиционистсткой математики Брауэра.

Сам Клини произносил свою фамилию как Клейни, ошибочная транслитерация Клини утвердилась в Советском Союзе в связи с изданием переводов его книг именно под такой фамилией.

Среди наиболее известных работ, издававшихся на русском языке - книги Введение в метаматематику и Математическая логика.


"Математическая логика" кстати в 1973 в СССР издавалась (год моего рождения ;=) а "Введение в математику" и вообще - 1957...

P.S. Купил переизданный англоязычный оригинал "математической логики" за 17 долларов на amazon.com


03 Jun 2007 19:55
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Тема переросла из чисто софтовой в теоретическую, поэтому переименовываю топик и переношу в теорию


03 Jun 2007 20:49
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:

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


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

НЕ (А И Б) = (А=ложь И Б=ложь) ИЛИ (А=ложь и Б=истина) ИЛИ (А=истина и Б=ложь) ИЛИ НЕ (А=истина И Б=истина)


03 Jun 2007 21:50
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:

Если пытатся сделать что-то аналогичное в нашем гипотетическом "троичном прологе", то ИЛИ также можно записать параллельно:
p:-a.
p:-b.

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



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

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

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


03 Jun 2007 22:12
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Вобщем вот примерный синтаксис ТРИЛОГА:

a. - положительный факт
\a. - отрицательный факт
a:=b. - положительное правило
\a:=b. - отрицательное правило (?)

a:=b,\c,d,\e. - пример записи правила с положительными и отрицательными составляющими

В связи с этим возникает вопрос - эквивалентны ли записи \a:=b. и a:=\b. ? А также каким образом можно перенести отрицание из левой части записи \a:=b,c. в правую (там использовано больше одного составляющего)?


03 Jun 2007 22:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
Shaos wrote:

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


Вот тут - http://arvi.livejournal.com/144849.html - вышеприведённая табличка называется "конъюнкция Клини" (написано американец - интересно как в оригинале его фамилия звучит?)


Нашёл:

Quote:
Стивен Коул Клини (англ. Stephen Cole Kleene; 5 января 1909 - 25 января 1994) - американский математик, чьи работы совместно с работами Алонзо Чёрча, Курта Гёделя и Алана Тьюринга дали начало разделу математической логики в теории вычислимости. Кроме того, известен изобретением регулярных выражений. Его именем названы Алгебра Клини, Звёздочка Клини, теорема Клини о рекурсии, теорема Клини о неподвижной точке. Кроме того, известны его работы в области интуиционистсткой математики Брауэра.

Сам Клини произносил свою фамилию как Клейни, ошибочная транслитерация Клини утвердилась в Советском Союзе в связи с изданием переводов его книг именно под такой фамилией.

Среди наиболее известных работ, издававшихся на русском языке - книги Введение в метаматематику и Математическая логика.


"Математическая логика" кстати в 1973 в СССР издавалась (год моего рождения ;=) а "Введение в математику" и вообще - 1957...

P.S. Купил переизданный англоязычный оригинал "математической логики" за 17 долларов на amazon.com


Что-то читаю статьи где на Клини ссылаются - у него таже классическая конъюнкция (MIN) как и у Лукашевича (1920) - т.е. не тоже самое что у меня выходит...


03 Jun 2007 23:44
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Мои мысли отдалённо близки к понятию "индуктивное логическое программирование", суть которого сводится к тому, что программа сама себя строит исходя из положительных и отрицательных примеров (и используюя некоторый ограниченный набор предикатов, прямо не связанный с примерами). Даже у Братко есть глава на эту тему.


04 Jun 2007 20:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22574
Location: Silicon Valley
Reply with quote
Shaos wrote:

Что-то читаю статьи где на Клини ссылаются - у него таже классическая конъюнкция (MIN) как и у Лукашевича (1920) - т.е. не тоже самое что у меня выходит...


Вобщем постепенно разбираюсь - у Клини существует strong three-valued logic (которую в основном поминают и которая в качестве И берёт MIN) и weak three-valued logic - вот это как раз и есть то, что у меня для И предлагается!


04 Jun 2007 21:53
Profile WWW
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 38 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.