DRAKON.SU https://forum.drakon.su/ |
|
Язык ДРАКОН для предусловий и постусловий https://forum.drakon.su/viewtopic.php?f=147&t=6062 |
Страница 1 из 1 |
Автор: | Степан Митькин [ Четверг, 31 Август, 2017 11:40 ] |
Заголовок сообщения: | Язык ДРАКОН для предусловий и постусловий |
Язык ДРАКОН подразумевает последовательность действий во времени. Пример: Отрежь кусок хлеба, намажь масло, съешь. А вот в логике времени нет. Там всё существует одновременно. (Не берём в расчёт темпоральную логику). В логике нет начала и конца. Пример: Крабы одновременно и большие, и дорогие. Тем не менее, человек не может объять необъятное за один присест. Он вынужден читать логические высказывания одно за другим. Пример: "В матрице М 10 строк" 10 == count(rows(M)) Это высказывание, а не процесс во времени. Тем не менее, его можно прочитать так: вытащили из матрицы строки, посчитали их, получается 10. Стало быть, можно применять ДРАКОН для логических выражений. |
Автор: | Степан Митькин [ Четверг, 31 Август, 2017 11:52 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Рассмотрим примеры из известной лекции Владимира Шелехова Функция сортировать Логическое И Вложение: Вот его аналог на ДРАКОНе: Вложение: sort2.png [ 3.78 КБ | Просмотров: 16354 ] Предикат отсортированный Квантор всеобщности и следование (импликация) Вложение: На ДРАКОНЕ: Вложение: sorted2.png [ 5.56 КБ | Просмотров: 16354 ] Общий пример с логическим следованием Вложение: На ДРАКОНЕ: Вложение: q.png [ 3.86 КБ | Просмотров: 16354 ] |
Автор: | Rifat [ Четверг, 31 Август, 2017 12:59 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Дракон-схема будет представлять процесс вычисления логического выражения. А вычислять логическое выражение можно по-разному. Можно слева направо, можно справа налево (учитывая приоритеты операций конечно), можно какой-нибудь другой порядок. Получится что для одного логического выражения может быть множество разных Дракон-схем, каждый из которых закрепляет какой-то свой порядок вычисления этого логического выражения. |
Автор: | Владимир Шелехов [ Пятница, 01 Сентябрь, 2017 07:38 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): Функция сортировать Логическое И Вложение: sort-shelehov.png Вот его аналог на ДРАКОНе: Вложение: sort2.png Спорное решение для представления конъюнкции в Драконе. А как представите дизъюнкцию A or B и импликацию A => B ? Rifat писал(а): Дракон-схема будет представлять процесс вычисления логического выражения. А вычислять логическое выражение можно по-разному. ... Не надо путать логическое выражение в языках программирования и логическое утверждение в математике. Логическое утверждение не вычисляется, а выводится из других утверждений. |
Автор: | Владимир Паронджанов [ Пятница, 01 Сентябрь, 2017 08:54 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Rifat писал(а): для одного логического выражения может быть множество разных Дракон-схем, каждый из которых закрепляет какой-то свой порядок вычисления этого логического выражения. Рифат, не совсем так.1. Я ввел понятие "канонической дракон-схемы". См. мою книгу "Учись..." стр. 171-177 2. Я ввел понятия "позитивный вопрос" и "негативный вопрос". См. мою книгу "Почему врачи убивают и калечат пациентов или зачем врачу блок-схемы алгоритмов..." стр.131 и далее 3. Я ввел понятие "картографический принцип" языка ДРАКОН. См. мою книгу "Почему врачи убивают и калечат пациентов или зачем врачу блок-схемы алгоритмов..." стр.190-197. Указанные понятия сводят логические выражения в языке ДРАКОН к ОДНОЗНАЧНОМУ виду. См. также в книге "Почему..." Цитата: Глава 8. Логика в медицине и невидимая математика.............стр. 122-151
|
Автор: | Степан Митькин [ Понедельник, 04 Сентябрь, 2017 12:13 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Владимир Шелехов писал(а): А как представите ... импликацию A => B ? Вот так: Вложение: 20170904104644.png [ 10.33 КБ | Просмотров: 16282 ] Владимир Шелехов писал(а): Спорное решение для представления конъюнкции в Драконе. Конъюнкция может быть двух типов: 1. Слева от знака импликации. A and B => C 2. Справа от знака импликации. A => C and D Представления при помощи ДРАКОНа у них тоже разные. Вот пример: Код: A and B => C and D Вложение: Владимир Шелехов писал(а): А как представите дизъюнкцию A or ... ? Дизъюнкция тоже может быть двух типов: 1. Слева от знака импликации. A or B => C (это хорошая дизъюнкция) 2. Справа от знака импликации. A => C or D (это плохая дизъюнкция. В логическом программировании редко применяется.) Хорошая: Вложение: 20170904110905.png [ 16.11 КБ | Просмотров: 16282 ] Плохая: Вложение: 20170904110421.png [ 10.81 КБ | Просмотров: 16282 ] |
Автор: | adva [ Понедельник, 04 Сентябрь, 2017 13:13 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Если это все в одной схеме с кодом, мне кажется надо как то изменить иконы (или может достаточно цвет поменять), чтобы контекст в мозгу быстро переключать, иначе не эргономично. Тут примерно то же самое, что с представлением данных. Может быть свой графоязык имеет смысл? Или подмножество дракона, но чуть видоизмененное ? |
Автор: | Владимир Паронджанов [ Понедельник, 04 Сентябрь, 2017 13:37 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): Конъюнкция может быть двух типов: Степан, поддерживаю.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 и далее Дракон-схемы для позитивных и негативных вопросов РАЗНЫЕ. |
Автор: | TAU [ Понедельник, 18 Сентябрь, 2017 20:20 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): в логике времени нет. Там всё существует одновременно. (Не берём в расчёт темпоральную логику А почему, собственно? Вообще, ГРАФИТ изначально создавался для программирования систем управления реального времени для космической техники. |
Автор: | Степан Митькин [ Среда, 20 Сентябрь, 2017 09:41 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
adva писал(а): мне кажется надо как то изменить иконы (или может достаточно цвет поменять), чтобы контекст в мозгу быстро переключать, иначе не эргономично. Я сначала согласился с этой мыслью. Всё-таки логическое программирование отличается от процедурного. Значит, по идее, надо и иконы другие ставить. Однако меня одолевали смутные сомнения. А потом я понял. Когда мы читаем ДРАКОН-схему, мы становимся на место исполнителя. Сначала сделать это. Сделали. Потом то. Сделали. В процедурном программировании исполнитель — это процессор. Он-то во время работы программы и исполняет предписания. В логическом программировании тоже есть похожий исполнитель. Исполнителем там является та утилита, которая читает логические выражения и записывает их в рабочую память. То есть вместо действий во время выполнения программы мы имеем действия с рабочей памятью во время загрузки логической программы. Или когда компилятор читает пред- и постусловия. Пример: Вот как действует читатель правил, следуя данной диаграмме: - В рабочей памяти есть утверждение A? - Есть! - Тогда добавляем в рабочую память утверждение B. Вывод Прочтение правил — процедурный процесс. А значит, ДРАКОН подходит для описания правил в логическом программировании. ДРАКОН выводит интерпретатор логических программ на чистую воду! |
Автор: | Владимир Паронджанов [ Среда, 20 Сентябрь, 2017 10:26 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): Вот как действует читатель правил, следуя данной диаграмме: Степан, поддерживаю.- В рабочей памяти есть утверждение A? - Есть! - Тогда добавляем в рабочую память утверждение B. Согласен с вашим примером импликации. Разница лишь в том, что я предлагаю все это дополнить примером простой интерпретации. Например, можно считать, что читатель — это не утилита, а обычный человек. Например, дядя Вася. А — Тетя Маша приезжает? Да. В — Встречай тетю Машу |
Автор: | Alexey_Donskoy [ Среда, 20 Сентябрь, 2017 10:56 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): ДРАКОН выводит интерпретатор логических программ на чистую воду! И совершенно напрасно.Логика придумана (в данном случае речь об использовании в программировании) для того, чтобы абстрагироваться от исполнителя. Чем достигается: - упрощение представления; - полнота рассмотрения всех возможных состояний; - уменьшение потенциальных ошибок программиста. Поэтому компиляция логических выражений и таблиц должна быть автоматизирована. А вынесение процедурного слоя на уровень программиста категорически противоречит требованиям надёжности разработки и её эргономики. Не могу не заметить, что опять у Паронджанова маркетинговые соображения (ориентация на новичков) убивают исходную идею когнитивной эргономики, заложенную в ДРАКОН. |
Автор: | Степан Митькин [ Четверг, 21 Сентябрь, 2017 09:40 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Alexey_Donskoy писал(а): Логика придумана (в данном случае речь об использовании в программировании) для того, чтобы абстрагироваться от исполнителя. Чем достигается: .... А вынесение процедурного слоя на уровень программиста категорически противоречит... Согласен на все сто. Я вовсе не предлагаю заменить логику процедурами. Речь идёт о другом. Логические утверждения можно рассматривать как команды по работе с логической базой данных. Примеры: Утверждение: расстояние(Земля, Солнце, 150000000) Что это означает: запомни, любезный, что расстояние от Земли до Солнца — 150 млн. км. Утверждение: отец(Витольд, Дорота) Что это означает: запомни хорошенько, что Витольд — отец Дороты. Правило: родитель(А, Б) и пол(А) == мужской -> отец(А, Б) Что это означает? Я пойду отдохну, а ты покамест сделай вот что: Код: Посмотри-ка в базе знаний, не является ли А родителем Б? Если является, проверь в той же базе, А — это мужчина или женщина? Если мужчина, то положи в базу новый факт, что А является отцом Б. Вложение: 20170921082747.png [ 15.79 КБ | Просмотров: 16129 ] Всё это происходит на этапе компиляции программы. Не во время выполнения! Повторяю: логические утверждения и правила — это команды по работе с базой знаний. В чём разница? Вот процедурные команды: - посчитай косинус Икс - открой файл Игрек Вот команды по работе с базой знаний: - запомни, что сумма квадратов катетов равна квадрату гипотенузы - запомни, что если ряд не пуст и отсортирован, его первый элемент есть наименьший |
Автор: | Alexey_Donskoy [ Четверг, 21 Сентябрь, 2017 11:03 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): Логические утверждения можно рассматривать как команды по работе с логической базой данных. А, ну да, я не распознал контекст данной темы.Почему я не распознал контекст? Потому что перед этим был пост Паронджанова про то, что он ввёл понятия "негативный вопрос" и "позитивный вопрос" - то есть речь шла про контекст процедурного программирования. |
Автор: | Владимир Паронджанов [ Пятница, 22 Сентябрь, 2017 09:17 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): В логическом программировании тоже есть похожий исполнитель. Исполнителем там является та утилита, которая читает логические выражения и записывает их в рабочую память. То есть вместо действий во время выполнения программы мы имеем действия с рабочей памятью во время загрузки логической программы. Или когда компилятор читает пред- и постусловия. Пример: Вот как действует читатель правил, следуя данной диаграмме: - В рабочей памяти есть утверждение A? - Есть! - Тогда добавляем в рабочую память утверждение B. Вывод Прочтение правил — процедурный процесс. А значит, ДРАКОН подходит для описания правил в логическом программировании. ДРАКОН выводит интерпретатор логических программ на чистую воду! Степан! Вы дали пример импликации. Но импликации бывают разные. Желательно уточнить, какую именно импликацию вы имеете в виду. Материальную? Строгую? Релевантную? |
Автор: | Степан Митькин [ Пятница, 22 Сентябрь, 2017 10:01 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Владимир Паронджанов писал(а): Но импликации бывают разные. Желательно уточнить, какую именно импликацию вы имеете в виду. Материальную? Строгую? Релевантную? Это неизвестно, если смотреть только на диаграмму. Данная ДРАКОН-схема импликации есть предписание ввести в базу знаний некое правило (продукцию). Различные виды логик определяют различные действия с базой знаний. Какая импликация имеет место, классическая или релевантная, зависит от реализации. |
Автор: | Владимир Паронджанов [ Вторник, 26 Сентябрь, 2017 21:41 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Степан Митькин писал(а): Это неизвестно, если смотреть только на диаграмму. Данная ДРАКОН-схема импликации есть предписание ввести в базу знаний некое правило (продукцию). Различные виды логик определяют различные действия с базой знаний. Какая импликация имеет место, классическая или релевантная, зависит от реализации. Степан, похоже, что Вы предлагаете что-то новое про интерпретацию импликации. Желательно пояснить подробнее. Вот моя точка зрения: Импликация Вложение:
|
Автор: | Степан Митькин [ Среда, 04 Октябрь, 2017 08:19 ] |
Заголовок сообщения: | Re: Язык ДРАКОН для предусловий и постусловий |
Владимир Паронджанов писал(а): Вот моя точка зрения: Думаю, это вполне наглядное объяснение. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |