DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 01:13

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




Начать новую тему Ответить на тему  [ Сообщений: 69 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 21 Июль, 2014 16:02 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Я получил письмо от читателя:
Цитата:
Здравствуйте. Я прочитал вашу книгу "Учись писать,читать и понимать алгоритмы". Она оказалась очень полезной, но в книге не было раздела про логическую связку "Исключающее ИЛИ" на языке ДРАКОН. Пожалуйста, не могли бы вы подсказать схему логической связки "Исключающее ИЛИ" на языке ДРАКОН?


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Июль, 2014 16:30 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Как развилку с условием А=Б, не? ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Июль, 2014 19:22 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Исключающее ИЛИ на языке ДРАКОН. Каноническая дракон-схема

Вложение:
Исключающее или.png
Исключающее или.png [ 752.49 КБ | Просмотров: 23085 ]


Уважаемые коллеги!

Есть ли замечания или вопросы по моей схеме?

=======================

Что говорит Википедия на запрос "Исключающее ИЛИ"?
Цитата:
Сложе́ние по мо́дулю 2 (логи́ческое сложе́ние, исключа́ющее «ИЛИ», строгая дизъюнкция, XOR, поразрядное дополнение, побитовый комплемент, жегалкинское сложение) — булева функция, а также логическая и битовая операция. В случае 2 переменных результат выполнения операции является истинным тогда и только тогда, когда лишь один из аргументов является истинным.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Июль, 2014 20:49 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Июль, 2014 23:01 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 189
Откуда: Россия, Санкт-Петербург
Владимир Паронджанов писал(а):
Что говорит Википедия на запрос "Исключающее ИЛИ"?
Цитата:
Сложе́ние по мо́дулю 2 (логи́ческое сложе́ние, исключа́ющее «ИЛИ», строгая дизъюнкция, XOR, поразрядное дополнение, побитовый комплемент, жегалкинское сложение) — булева функция, а также логическая и битовая операция. В случае 2 переменных результат выполнения операции является истинным тогда и только тогда, когда лишь один из аргументов является истинным.
Другими словами, "a XOR b" тождественно "a <> b". XOR - это проверка на неравенство двух булевых значений. Неужели для этого нужна такая сложная Дракон-схема?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Июль, 2014 18:00 

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

Википедия говорит:
Цитата:
Базовыми элементами, которыми оперирует алгебра логики, являются высказывания.

Высказывания строятся над множеством {B, НЕ, И, ИЛИ, 0, 1}, где B — непустое множество, над элементами которого определены три операции:
— НЕ отрицание (унарная операция),
— И конъюнкция (бинарная),
— ИЛИ дизъюнкция (бинарная),
а логический ноль 0 и логическая единица 1 — константы.


Я хотел показать, что знаки НЕ, И, ИЛИ можно полностью удалить из логических выражений и заменить их графикой. Для этой цели я предложил и доказал две теоремы:
Цитата:
Теорема. Дракон-схему, содержащую внутри икон «вопрос» логические знаки И, ИЛИ, НЕ, всегда можно преобразовать в эквивалентную дракон-схему, не содержащую указанных знаков.
См. книгу "Учись писать, читать и понимать алгоритмы", стр. 165.

Цитата:
Теорема. Дракон-схему можно преобразовать к каноническому виду с помощью цепочки равносильных преобразований.
Там же, стр. 171

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

Как представить XOR графически?

Вложение:
Операция XOR ..png
Операция XOR ..png [ 213.81 КБ | Просмотров: 23030 ]


Слева операция "A XOR B" представлена в виде дизъюнктивной нормальной формы. Справа та же самая ДНФ изображена графически.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Июль, 2014 22:30 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Александр Ильин писал(а):
"a XOR b" тождественно "a <> b"

и после этого:
Владимир Паронджанов писал(а):
Моя задача была упростить логическое выражение, представленное в виде нормальной формы, в рамках алгебры логики...


ужас какой! может не надо проще , чем просто?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июль, 2014 14:46 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемый Рэйлвэй Каген!

Вам не понравилось слово "упростить". Я могу его безболезненно убрать.

Начнем с самого начала. Имеется дизъюнктивная нормальная форма
(А и неB) или (неА и B)

Требуется

Удалить знаки логических операций: отрицания, конъюнкции и дизъюнкции с помощью эквивалентных преобразований ДНФ. Можно ли это сделать?

Вчера ответ был отрицательный, так как алгебра логики изучалась и анализировалась в рамках текстовой парадигмы. Визуальная алгебра логики не существовала.

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

Само собой разумеется, что созданная мной ВИЗУАЛЬНАЯ алгебра логики полностью эквивалентна классической ТЕКСТОВОЙ алгебре логики. Если Вы полагаете, что это не так, надо привести опровергающий пример.

Эта тема подробно изложена в «Главе 11. Логические формулы, используемые в алгоритмах» моей книги «Учись писать, читать и понимать алгоритмы. Алгоритмы для правильного мышления. Основы алгоритмизации".

ВЫВОД

Сегодня можно утверждать, что наряду с классической текстовой алгеброй логики существует и визуальная алгебра логики.

Мне кажется, ничего ужасного в этом нет.
Или я не прав?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июль, 2014 15:19 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
Мне кажется, ничего ужасного в этом нет.
Ужасного нет, но и полезного тоже не видно. ИМХО.
И новизны-то никакой нет - преобразования же очевидны.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Июль, 2014 14:39 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
кратко поясню:
Вложение:
xor.png
xor.png [ 3.86 КБ | Просмотров: 22910 ]
Как видите, Владимир Паронджанов рекомендует записывать не смысл вопроса, а его разложение!

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

Попробуйте-ка уловить смысл операции в блоке из четырёх развилок. И при этом надо ещё умудриться мгновенно понять именованные ТЕКСТОМ выходы развилок. А их уже восемь! Чанков не хватит :)


p.s.: подобный приём с усечённым набором логических операций используется в аппаратной логике исключительно в силу простоты физической реализуемости стандартных блоков логических операций. Подчёркиваю - это аппаратно-зависимый функционал, который не может и не должен выноситься на языковой уровень.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 04 Январь, 2015 21:34 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Благодарю уважаемого Райлвэй Каген за интересное критическое замечание.

Ответ на критику выскажу, когда у меня появится время.
К сожалению, в ближайшее время у меня его не будет.

Пока что скажу лишь коротко. Я не могу согласиться с этим замечанием.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Март, 2015 00:47 

Зарегистрирован: Четверг, 10 Январь, 2013 16:59
Сообщения: 70
Рэйлвэй Каген писал(а):
Подчёркиваю - это аппаратно-зависимый функционал, который не может и не должен выноситься на языковой уровень.
В логических конструкциях вполне допустимо использовать специальные логические элементы (типа, исключающее ИЛИ). Визуальное соединение нескольких элементов - тоже полезно.

Мне эта ветка вот чем интересна:
В блок-схемах (и Дракон не исключение) часто используется булева логика: таймеры, параллельные процессы, логические вентили. И всё же, для описания логических конструкций больше подходят релейно-контактные схемы (кстати, они похожи на силуэт)).

Именно в «релейно-контактных» конструкциях можно описывать системы раздельного доступа или состояние промышленных автоматов. Поэтому, хоть сами "логические" релюшки уже давно списаны из производственных электрошкафов, их образы перекочевали на экраны операторских и диагностических мониторов.
О системах раздельного доступа пока почти ничего не знаю.

По этой теме у меня два вопроса:
1. Дракон-схема, отображающая любую релейно-контактную схему (возможно ли такое?).
2. Примеры совместного использования в схеме сразу и булевой, и драконовской конструкций. Особенно интересен опыт использования HiAsm-схем: тамошние ребята молодцы: изящно решили проблему пересечения соединительных линий! К тому же, возможности HiAsm-конструктора заставляют задуматься о его применении во многих задачах вместе- или вместо Драконов.

По первому вопросу вряд ли получу здесь ответ. Уж слишком долго спорили о простейшем случае: всего один элемент…


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Март, 2015 15:33 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
__1__ писал(а):
для описания логических конструкций больше подходят релейно-контактные схемы
Чем больше подходят?
Вообще говоря, не могу отдать предпочтения ни LD (Ladder Diagram, релейно-контактным схемам), ни FBD (Function Block Diagram, функциональным схемам) в данном случае, хотя обе они реализованы в моих редакторах и, казалось бы, опыт должен быть.
Наши (российские) релейщики с LD практически не знакомы. На Западе они ЕЩЁ популярны, а у нас сразу на FBD перескочили.
FBD понимает каждый инженер, LD бегло читать - непривычно, учиться надо.

А теперь вместо инженера (тем более профессионального релейщика) возьмите обычного человека (даже не программиста).
И как ему LD объяснять? Здесь уже физика-электротехника приплетается, кому это понравится?
А вот привычные функциональные схемы FBD использовать есть смысл. Для инженеров. А для остальных - снова другой дополнительный язык...

Цитата:
1. Дракон-схема, отображающая любую релейно-контактную схему (возможно ли такое?).
Ну разве внутри развилки (вставки)? Плохо то, что меняется направление взгляда, язык явно другой, ну и всё, что выше...
Функциональную схему можно бы и перевернуть по вертикали, но инженеры взвоют! ;)

Цитата:
интересен опыт использования HiAsm-схем
Да, они здесь тоже были. Но их опыт, похоже, недооценён.
К примеру, я ничего не пробовал делать в этой системе, стало быть, и сказать почти нечего...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2015 03:23 

Зарегистрирован: Четверг, 10 Январь, 2013 16:59
Сообщения: 70
Alexey_Donskoy писал(а):
__1__ писал(а):
Дракон-схема, отображающая любую релейно-контактную схему (возможно ли такое?)
Ну разве внутри развилки (вставки)? Плохо то, что меняется направление взгляда, язык явно другой, ну и всё, что выше...
Функциональную схему можно бы и перевернуть по вертикали, но инженеры взвоют! ;)
Насколько знаю, можно десятком икон универсально запрограммировать любую релейно-контактную схему. результат её работы будет выглядеть так: если нулями и единичками задать любое количество входов, то эти входные данные определят состояние любого количества выходов.

Кроме этой универсальной программы потребуется двоично-матричный образ конкретной схемы...
То есть, в рамках этой программной модели, любая булева логика программируется особым низкоуровневым языком: в виде набора двоичных последовательностей (+ рутинные действия по их программной обработке). Никакой визуализации пока придумать не могу. То есть решение этой задачи будет невзрачным, но простым и универсальным.

Рисовать это - потребует времени. А пока, докажите классическую булеву формулу:
Вложение:
X1 + X2.PNG
X1 + X2.PNG [ 887 байт | Просмотров: 22206 ]
(достаточно указать метод её доказательства).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 15 Март, 2015 19:43 

Зарегистрирован: Четверг, 10 Январь, 2013 16:59
Сообщения: 70
Логические конструкции средствами Дракона:

    Изображение (графический архив)

    Вложение:
    релейно-контактный силуэт.PNG
    релейно-контактный силуэт.PNG [ 10.54 КБ | Просмотров: 22167 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 22 Март, 2015 09:25 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: "Релейно-контактный" силуэт
СообщениеДобавлено: Суббота, 28 Март, 2015 08:22 

Зарегистрирован: Четверг, 10 Январь, 2013 16:59
Сообщения: 70
Alexey_Donskoy писал(а):
Мало того, что непонятно, и преимуществ никаких не видно.
Ну, ничего-себе! ... ;)
Основное преимущество в простоте схем (и соответствующих программ):
1) Если раньше приходилось последовательно перебирать состояние входов, использовать особые макро-иконки ([ждать], [параллельные действия], и т.п. ... ), то теперь соответствующий кусок программы можно (будет)) изобразить намного проще: одним элементом!
2) Кажется, имено Вы предлагали испольлзовать метки? Это возможность изображать примитивом любую схему (в частности, это возможность просто и наглядно изобразить некоторые сложные алгоритмы). Релейно-контактный синтаксис силуэтов поможет использовать их в качестве таких ссылок-меток. В общем, «релейно-контактный» синтаксис – это шаг к повсеместному использованию силуэтов в качестве подпрограмм. Многостраничные силуэты – это плохо. Лучше несколько маленьких.
3) В Драконе синтаксис параллельных действий изображён не полноценно: для слияния параллельных ветвлений не хватает именно "релейно-контактных" элементов.



Alexey_Donskoy писал(а):
И вообще схема неполная. Ровно половина комбинаций отсутствует, не нашёл, как ни старался! ;)
Правильно!

В реальных программах (и схемах) не всегда нужны все комбинации. То есть, чтобы реализовать условное действие [Y=1] - достаточно половины таблицы истинности. Но программа будет "висеть", пока на входе логического элемента не соберётся комбинация: "или X1, или X2".
Чтоб она не висела, дополните эту схему, то есть, её табличку связей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 15 Апрель, 2015 23:06 

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

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

Попробуйте-ка уловить смысл операции в блоке из четырёх развилок.
И при этом надо ещё умудриться мгновенно понять именованные
ТЕКСТОМ выходы развилок. А их уже восемь! Чанков не хватит
Это не так. Это недоразумение.

В качестве иллюстрации предлагаю детскую задачу.

ДЕТСКАЯ ЗАДАЧА

Том и Гек узнали, что на том берегу реки разбойники спрятали клад,
и решили найти его.
Но как переправиться через реку? Через реку перекинут одноразовый мост.

Что значит одноразовый? Это значит, что по мосту может пройти
только один человек: либо Том, либо Гек, но не оба вместе.
Если дети пойдут вдвоем (вместе или по очереди), произойдет
несчастье и они погибнут.

Как раздобыть клад?

Ответ. За кладом должен отправиться только один человек.
Или Том, или Гек.

Вложение:
Детская Операция XOR .png
Детская Операция XOR .png [ 289.15 КБ | Просмотров: 22002 ]


=======================

Александр Ильин писал(а):
"a XOR b" тождественно "a <> b".
XOR - это проверка на неравенство двух булевых значений.
Неужели для этого нужна такая сложная Дракон-схема?

Мне кажется, что объяснить детскую задачу легче по дракон-схеме
(про Тома и Гека), чем рассказывать им про сложные вещи,
такие как "неравенство двух булевых значений",
или "a XOR b", или "a <> b".


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

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 105
Откуда: Псков
Позвольте побрюзжать.
1. Пример (задача) на XOR не очень удачна. Это, если детей двое, то как бы XOR подходит, а если их больше (3 к примеру), то XOR уже не применишь.
2. Как-то не очень смотрится когда после ветвления по какой либо переменной далее в ветках есть ветвления по ней же, хотя значение же уже определено.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 16 Апрель, 2015 10:22 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 105
Откуда: Псков
В дополнении.
Если уж и необходимо выразить XOR, то IMHO лучше, имея ввиду, что нужно определить "нечётность", то и алгоритм построить на последовательном переборе переменных и на каждом этапе инвертировать или не инвертировать результат. Ведь всё равно у нас же последовательный процесс, а не параллельная электрическая схема, которая больше применима к выражению формулы "в лоб"

результат:=нет
if A then результат:=~результат
if B then результат:=~результат
...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 69 ]  На страницу 1, 2, 3, 4  След.

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


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

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


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

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