DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 14:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 31 Август, 2017 11:40 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Язык ДРАКОН подразумевает последовательность действий во времени.
Пример:
Отрежь кусок хлеба, намажь масло, съешь.

А вот в логике времени нет. Там всё существует одновременно. (Не берём в расчёт темпоральную логику).
В логике нет начала и конца.
Пример:
Крабы одновременно и большие, и дорогие.

Тем не менее, человек не может объять необъятное за один присест.
Он вынужден читать логические высказывания одно за другим.
Пример:
"В матрице М 10 строк"
10 == count(rows(M))
Это высказывание, а не процесс во времени.
Тем не менее, его можно прочитать так: вытащили из матрицы строки, посчитали их, получается 10.

Стало быть, можно применять ДРАКОН для логических выражений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Август, 2017 11:52 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Рассмотрим примеры из известной лекции Владимира Шелехова

Функция сортировать
Логическое И
Вложение:
sort-shelehov.png
sort-shelehov.png [ 43.39 КБ | Просмотров: 15974 ]

Вот его аналог на ДРАКОНе:
Вложение:
sort2.png
sort2.png [ 3.78 КБ | Просмотров: 15974 ]


Предикат отсортированный
Квантор всеобщности и следование (импликация)
Вложение:
sorted-shelehov.png
sorted-shelehov.png [ 75.27 КБ | Просмотров: 15974 ]

На ДРАКОНЕ:
Вложение:
sorted2.png
sorted2.png [ 5.56 КБ | Просмотров: 15974 ]


Общий пример с логическим следованием
Вложение:
pred-shelehov.png
pred-shelehov.png [ 696.44 КБ | Просмотров: 15974 ]

На ДРАКОНЕ:
Вложение:
q.png
q.png [ 3.86 КБ | Просмотров: 15974 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Август, 2017 12:59 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 219
Откуда: Казань
Дракон-схема будет представлять процесс вычисления логического выражения. А вычислять логическое выражение можно по-разному. Можно слева направо, можно справа налево (учитывая приоритеты операций конечно), можно какой-нибудь другой порядок. Получится что для одного логического выражения может быть множество разных Дракон-схем, каждый из которых закрепляет какой-то свой порядок вычисления этого логического выражения.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Сентябрь, 2017 07:38 

Зарегистрирован: Вторник, 22 Сентябрь, 2015 20:43
Сообщения: 76
Степан Митькин писал(а):
Функция сортировать Логическое И
Вложение:
sort-shelehov.png

Вот его аналог на ДРАКОНе:
Вложение:
sort2.png

Спорное решение для представления конъюнкции в Драконе.
А как представите дизъюнкцию A or B и импликацию A => B ?
Rifat писал(а):
Дракон-схема будет представлять процесс вычисления логического выражения. А вычислять логическое выражение можно по-разному. ...

Не надо путать логическое выражение в языках программирования и логическое утверждение в математике. Логическое утверждение не вычисляется, а выводится из других утверждений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Сентябрь, 2017 08:54 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Rifat писал(а):
для одного логического выражения может быть множество разных Дракон-схем, каждый из которых закрепляет какой-то свой порядок вычисления этого логического выражения.
Рифат, не совсем так.

1. Я ввел понятие "канонической дракон-схемы". См. мою книгу "Учись..." стр. 171-177

2. Я ввел понятия "позитивный вопрос" и "негативный вопрос". См. мою книгу "Почему врачи убивают и калечат пациентов или зачем врачу блок-схемы алгоритмов..." стр.131 и далее

3. Я ввел понятие "картографический принцип" языка ДРАКОН. См. мою книгу "Почему врачи убивают и калечат пациентов или зачем врачу блок-схемы алгоритмов..." стр.190-197.

Указанные понятия сводят логические выражения в языке ДРАКОН к ОДНОЗНАЧНОМУ виду.

См. также в книге "Почему..."
Цитата:
Глава 8. Логика в медицине и невидимая математика.............стр. 122-151


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 04 Сентябрь, 2017 12:13 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Шелехов писал(а):
А как представите ... импликацию A => B ?

Вот так:
Вложение:
20170904104644.png
20170904104644.png [ 10.33 КБ | Просмотров: 15902 ]


Владимир Шелехов писал(а):
Спорное решение для представления конъюнкции в Драконе.

Конъюнкция может быть двух типов:
1. Слева от знака импликации. A and B => C
2. Справа от знака импликации. A => C and D
Представления при помощи ДРАКОНа у них тоже разные.
Вот пример:
Код:
A and B => C and D

Вложение:
20170904111008.png
20170904111008.png [ 13.21 КБ | Просмотров: 15902 ]


Владимир Шелехов писал(а):
А как представите дизъюнкцию A or ... ?

Дизъюнкция тоже может быть двух типов:
1. Слева от знака импликации. A or B => C (это хорошая дизъюнкция)
2. Справа от знака импликации. A => C or D (это плохая дизъюнкция. В логическом программировании редко применяется.)
Хорошая:
Вложение:
20170904110905.png
20170904110905.png [ 16.11 КБ | Просмотров: 15902 ]

Плохая:
Вложение:
20170904110421.png
20170904110421.png [ 10.81 КБ | Просмотров: 15902 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 04 Сентябрь, 2017 13:13 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 239
Откуда: Россия, Стерлитамак
Если это все в одной схеме с кодом, мне кажется надо как то изменить иконы (или может достаточно цвет поменять), чтобы контекст в мозгу быстро переключать, иначе не эргономично. Тут примерно то же самое, что с представлением данных. Может быть свой графоязык имеет смысл? Или подмножество дракона, но чуть видоизмененное ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 04 Сентябрь, 2017 13:37 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Степан Митькин писал(а):
Конъюнкция может быть двух типов:
1. Слева от знака импликации. A and B => C
2. Справа от знака импликации. A => C and D
Представления при помощи ДРАКОНа у них тоже разные.
Вот пример:
Код:
A and B => C and D

Вложение:
20170904111008.png


Дизъюнкция тоже может быть :
1. Слева от знака импликации. A or B => C (это хорошая дизъюнкция)

Хорошая:
Вложение:
20170904110905.png

Степан, поддерживаю.
Но. Я проработал более подробно для позитивных и негативных вопросов.

Я ввел понятия "позитивный вопрос" и "негативный вопрос". См. мою книгу "Почему врачи убивают и калечат пациентов или зачем врачу блок-схемы алгоритмов..." стр.131 и далее

Дракон-схемы для позитивных и негативных вопросов РАЗНЫЕ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 18 Сентябрь, 2017 20:20 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Степан Митькин писал(а):
в логике времени нет. Там всё существует одновременно. (Не берём в расчёт темпоральную логику

А почему, собственно?

Вообще, ГРАФИТ изначально создавался для программирования систем управления реального времени для космической техники.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 20 Сентябрь, 2017 09:41 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
adva писал(а):
мне кажется надо как то изменить иконы (или может достаточно цвет поменять), чтобы контекст в мозгу быстро переключать, иначе не эргономично.


Я сначала согласился с этой мыслью. Всё-таки логическое программирование отличается от процедурного. Значит, по идее, надо и иконы другие ставить.

Однако меня одолевали смутные сомнения. А потом я понял.

Когда мы читаем ДРАКОН-схему, мы становимся на место исполнителя. Сначала сделать это. Сделали. Потом то. Сделали.
В процедурном программировании исполнитель — это процессор. Он-то во время работы программы и исполняет предписания.

В логическом программировании тоже есть похожий исполнитель. Исполнителем там является та утилита, которая читает логические выражения и записывает их в рабочую память.
То есть вместо действий во время выполнения программы мы имеем действия с рабочей памятью во время загрузки логической программы.
Или когда компилятор читает пред- и постусловия.

Пример:
Изображение
Вот как действует читатель правил, следуя данной диаграмме:
- В рабочей памяти есть утверждение A?
- Есть!
- Тогда добавляем в рабочую память утверждение B.

Вывод
Прочтение правил — процедурный процесс. А значит, ДРАКОН подходит для описания правил в логическом программировании.

ДРАКОН выводит интерпретатор логических программ на чистую воду!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 20 Сентябрь, 2017 10:26 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Степан Митькин писал(а):
Вот как действует читатель правил, следуя данной диаграмме:
- В рабочей памяти есть утверждение A?
- Есть!
- Тогда добавляем в рабочую память утверждение B.
Степан, поддерживаю.
Согласен с вашим примером импликации.

Разница лишь в том, что я предлагаю все это дополнить примером простой интерпретации.
Например, можно считать, что читатель
это не утилита, а обычный человек. Например, дядя Вася.

А — Тетя Маша приезжает?
Да.

В — Встречай тетю Машу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 20 Сентябрь, 2017 10:56 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Степан Митькин писал(а):
ДРАКОН выводит интерпретатор логических программ на чистую воду!
И совершенно напрасно.
Логика придумана (в данном случае речь об использовании в программировании) для того, чтобы абстрагироваться от исполнителя.
Чем достигается:
- упрощение представления;
- полнота рассмотрения всех возможных состояний;
- уменьшение потенциальных ошибок программиста.

Поэтому компиляция логических выражений и таблиц должна быть автоматизирована.
А вынесение процедурного слоя на уровень программиста категорически противоречит требованиям надёжности разработки и её эргономики.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Сентябрь, 2017 09:40 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Alexey_Donskoy писал(а):
Логика придумана (в данном случае речь об использовании в программировании) для того, чтобы абстрагироваться от исполнителя.
Чем достигается:
....
А вынесение процедурного слоя на уровень программиста категорически противоречит...

Согласен на все сто.

Я вовсе не предлагаю заменить логику процедурами.
Речь идёт о другом.
Логические утверждения можно рассматривать как команды по работе с логической базой данных.
Примеры:

Утверждение: расстояние(Земля, Солнце, 150000000)
Что это означает: запомни, любезный, что расстояние от Земли до Солнца — 150 млн. км.

Утверждение: отец(Витольд, Дорота)
Что это означает: запомни хорошенько, что Витольд — отец Дороты.

Правило: родитель(А, Б) и пол(А) == мужской -> отец(А, Б)
Что это означает?

Я пойду отдохну, а ты покамест сделай вот что:

Код:
Посмотри-ка в базе знаний, не является ли А родителем Б?
Если является, проверь в той же базе, А — это мужчина или женщина?
Если мужчина, то положи в базу новый факт, что А является отцом Б.


Вложение:
20170921082747.png
20170921082747.png [ 15.79 КБ | Просмотров: 15749 ]


Всё это происходит на этапе компиляции программы. Не во время выполнения!

Повторяю: логические утверждения и правила — это команды по работе с базой знаний.
В чём разница?

Вот процедурные команды:
- посчитай косинус Икс
- открой файл Игрек

Вот команды по работе с базой знаний:
- запомни, что сумма квадратов катетов равна квадрату гипотенузы
- запомни, что если ряд не пуст и отсортирован, его первый элемент есть наименьший


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Сентябрь, 2017 11:03 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Степан Митькин писал(а):
Логические утверждения можно рассматривать как команды по работе с логической базой данных.
А, ну да, я не распознал контекст данной темы.
Почему я не распознал контекст?
Потому что перед этим был пост Паронджанова про то, что он ввёл понятия "негативный вопрос" и "позитивный вопрос" - то есть речь шла про контекст процедурного программирования.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Сентябрь, 2017 09:17 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Степан Митькин писал(а):
В логическом программировании тоже есть похожий исполнитель. Исполнителем там является та утилита, которая читает логические выражения и записывает их в рабочую память.
То есть вместо действий во время выполнения программы мы имеем действия с рабочей памятью во время загрузки логической программы.
Или когда компилятор читает пред- и постусловия.

Пример:
Изображение
Вот как действует читатель правил, следуя данной диаграмме:
- В рабочей памяти есть утверждение A?
- Есть!
- Тогда добавляем в рабочую память утверждение B.

Вывод
Прочтение правил — процедурный процесс. А значит, ДРАКОН подходит для описания правил в логическом программировании.

ДРАКОН выводит интерпретатор логических программ на чистую воду!

Степан!
Вы дали пример импликации.
Но импликации бывают разные. Желательно уточнить, какую именно импликацию вы имеете в виду.

Материальную?
Строгую?
Релевантную?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Сентябрь, 2017 10:01 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Но импликации бывают разные. Желательно уточнить, какую именно импликацию вы имеете в виду.

Материальную?
Строгую?
Релевантную?

Это неизвестно, если смотреть только на диаграмму.

Данная ДРАКОН-схема импликации есть предписание ввести в базу знаний некое правило (продукцию).
Различные виды логик определяют различные действия с базой знаний.

Какая импликация имеет место, классическая или релевантная, зависит от реализации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Сентябрь, 2017 21:41 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Степан Митькин писал(а):
Это неизвестно, если смотреть только на диаграмму.

Данная ДРАКОН-схема импликации есть предписание ввести в базу знаний некое правило (продукцию).
Различные виды логик определяют различные действия с базой знаний.

Какая импликация имеет место, классическая или релевантная, зависит от реализации.


Степан, похоже, что Вы предлагаете что-то новое про интерпретацию импликации. Желательно пояснить подробнее.

Вот моя точка зрения:

Импликация

Вложение:
Импликация Привед к канон Виду .png
Импликация Привед к канон Виду .png [ 136.62 КБ | Просмотров: 15654 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 08:19 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Владимир Паронджанов писал(а):
Вот моя точка зрения:

Думаю, это вполне наглядное объяснение.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB