powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Найдите д.н.ф. и к.н.ф. для :
25 сообщений из 88, страница 3 из 4
Найдите д.н.ф. и к.н.ф. для :
    #40116575
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо в топик функцию от 32 аргументов. С этими мелкими - скушно. Даёшь Квайна.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116578
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык сперва нужно методу пощупать. Это ж первое, что пришло в голову. Наверное для 8 переменных уже в большинстве случаев не будет подавляющего доминирования одной одной из них.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116821
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот когда почётным академикам и профессорам из этого топика
надоест швырять барометр из окна - пускай заходят сюда.

Будем щупать.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117062
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обозначим:
Код: plaintext
(А or В)= А+В <> (А хor В)= (А+В)\АВ= А+В -АВ
Код: plaintext
1.
2.
3.
4.
5.
А or В, 
------
0 0 =0
0 1 =1
1 0 =1
1 1 =1
СДНФ=
Код: plaintext
 !АВ +А!В +АВ
= (разлагается по 2-м вариантам, работаем со вторым вар-м)
Код: plaintext
1.
1) = (!А+А)В +А!В= В +А!В
2) = !АВ +А(!В+В)= А +!АВ= (А -АВ) +АВ +!АВ= (А -АВ) +(А +!А)В= А -АВ +В= (А+В)-АВ= Xor= Or 
?!!
Оказывается, Xor === Or. Что Квайн говорит?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117075
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Оказывается, Xor === Or. Что Квайн говорит?

А что за операция "-" у тебя используется?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117091
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В начале же ввёл обозначение для краткости А\В= А-В= "А без В" (между прочим тоже широко используется).
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117121
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автордля краткости А\В= А-В= "А без В" Или так А(!В).
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117152
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
автордля краткости А\В= А-В= "А без В"
Или так А(!В).
Извиняюсь, не сначала читаю, т.е. я правильно понял что
Код: sql
1.
А +!АВ = (А -АВ) +АВ +!АВ = (A + А(!В)) + АВ +!АВ


Так не работает. Какая-то излишняя оптимизация получилась.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117172
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как я получил 3 функции.


Модератор: Поправил картинку, как-то все сложно получилось
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117176
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
т.е. я правильно понял что
Код: sql
1.
А +!АВ = (А -АВ) +АВ +!АВ = (A + А(!В)) + АВ +!АВ

Теперь я не понял, у меня прозрачнее. Простая операция в смысле множеств: удалили пересечение, и сразу его же добавили, в результате множество не изменилось. Такой смысл сделанной операции. (частый приём в уравнениях и т.п.)
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117177
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
[spoiler Вот как я получил 3 функции.]
Мой не видит, а старую не успел разглядеть.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117179
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Dima T
т.е. я правильно понял что
Код: sql
1.
А +!АВ = (А -АВ) +АВ +!АВ = (A + А(!В)) + АВ +!АВ

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

есть три возможных операции:
Код: plaintext
1.
2.
3.
сложение or
умножение and
отрицание ! (или not)
Откуда деление или вычитание появилось? Это недопустимые операции для булевой алгебры, нельзя их транслировать из обычной арифметики. UB как сказали бы в С/С++.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117181
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, ну хорошо, всё то же самое относится к множествам. Уж с ними эти операции возможны и понятны. Мой текст от этого не меняется. (что такое Х без У, д.б. известно, и XOR на множествах работает известно как...)
И исходное тождество имеет место (А +!АВ) = А U B.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117187
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие множества если всего два возможных значения: 0 и 1 ?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117188
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Откуда деление или вычитание появилось? Это недопустимые операции для булевой алгебры,
Хотя на самом деле деление=обратная операция к умножению (как в любой группе). Именно для объекта со свойством "Булевой алгебры", обязан иметься обратный для каждого эл-та, обязан иметься максимальный (обозначается "1" ), и А -1 = "1" - А = "дополнение до максимального").

Но давай вернёмся к множествам, а то нобелевку не успею получить.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117192
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Какие множества
В логике мой вопрос вызывает вопросы на старте. Но мой вопрос написан в форме, инвариантной и для теории множеств. Задаю этот же вопрос в отношении теории множест. А логику забудем, пока.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117196
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Dima T
Откуда деление или вычитание появилось? Это недопустимые операции для булевой алгебры,
Хотя на самом деле деление=обратная операция к умножению (как в любой группе). Именно для объекта со свойством "Булевой алгебры", обязан иметься обратный для каждого эл-та, обязан иметься максимальный (обозначается "1" ), и А -1 = "1" - А = "дополнение до максимального").

Но давай вернёмся к множествам, а то нобелевку не успею получить.

Дополнение до обратного это для сложения чисел со знаком.

Меня этой мутотой дрючили полтора года по 5 пар в неделю, такое не забывается
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117205
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Дополнение до обратного это для сложения чисел со знаком.
Я не совсем точно к ситуации написал, но если смотреть отвлечённо от темы, то написал правильно.
Есть сужающийся круг понятий.
Множество - не буду аксиомить, грубо говоря, всё, что можно указать пальцем или функцией и т.д. Но нужно соблюсти однородность перечисленных объектов.

Захотелось манипулировать с элементами мн-ва, ввели операцию (* или + или U, как угодно, лишь бы операция удовлетворяла свойствам). Получился объект Группа .

Далее захотелось иметь 2 разных операции в группе - получили объект Кольцо .
Ещё добавили требований - Поле . Арифметические Поля - R, C, Fp, Qutrn .... необязательно числа даже, был бы формализм.
Вот так античные представления были обобщены абстрактно.
Такое тоже не забывается))

Но давай лучше вернёмся к теории множеств. Ну, или не возращайся, коли не хош.

Кстати, тут писали про диаграммы какого-то Версачча, но я про них не слышал, а вот в теор. мн-в юзают диаграммы Венна. Хорошая геометрическая интерпретация операций с множествами. Я об них услышал от курсанта Томско/Омской школы милици, их там на следаков натаскивали расширять круг улик или сужать круг подозреваемых, обстаятельств и пр.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117274
KpoxaPym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
кстати, интересно, а чё он пришёл на форум программистов?
видать на форуме математиков его уже послали?


На форуме математиков регистрация дюже мудрёная. Там интеграл надо при регистрации решить или что-то подобное. В общем, отсекают школьников и прочих ботов. Я, кажется, в Маткаде задание порешал, не помню - давно это было
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117620
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Вот как я получил 3 функции.


Модератор: Поправил картинку, как-то все сложно получилось


Давно не заглядывал сюда, думая, что вопрос исчерпан. После того, как я привел решение задачи для f1, написано много. Но видимо не понять моему простому уму всю глубину этих выданных мыслей.

В цитируемом сообщении была найдена ДНФ для функции f1 (остальные функции я не рассматриваю), но она не является минимальной. Из приведенной карты Карно видно, что импликанта x¬y поглощается импликантами ¬yz, x¬z.

Что такое импликанта? Пусть X = x1, x2, . . ., xN. Булева функция g(X) называется импликантой функции f(X), если для любого набора переменных α из X, на котором g(α)=1, справедливо f(α)=1, т.е. g(X) -> f(X) ≡ 1.

Проверку того, что истинность функции ¬yz \/ x¬z совпадает с истинностью функции f1, можно выполнить с помощью таблиц истинности или аналитически. Работу с таблицами истинности я уже приводил, поэтому приведу аналитический способ. После // дан используемый закон алгебры логики (булевой алгебры):

¬yz \/ x¬z \/ x¬y = // исходная ДНФ
¬yz \/ x¬z \/ x¬y1 = // a/\1 = 1
¬yz \/ x¬z \/ x¬y(¬z\/z) = // ¬a\/a = 1
¬yz \/ x¬z \/ x¬y¬z \/ x¬yz = // дистрибутивность
¬yz \/ (x¬z \/ x¬y¬z) \/ x¬yz = // ассоциативность
¬yz \/ x¬z(1 \/ ¬z) \/ x¬yz = // дистрибутивность
¬yz \/ x¬z1 \/ x¬yz = // 1\/a = 1
¬yz \/ x¬z \/ x¬yz = // a/\1 = a
¬yz \/ x¬yz \/ x¬z = // коммутативность
(¬yz \/ x¬yz) \/ x¬z = // ассоциативность
¬yz(1 \/ x) \/ x¬z = // дистрибутивность
¬yz1 \/ x¬z = // a/\1 = a
¬yz \/ x¬z // это и есть минимальная ДНФ

Надеюсь, что нигде не ошибся со знаком отрицания (00AC), так как вводить его с клавиатуры сложно, а много Copy-Paste приводит к ошибкам. Так, приводя совершенную ДНФ в своем предыдущем сообщении, я не умышленно пропустил один знак отрицания.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40117687
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор покинул топик и больше не появлялся.

Само задание написано как-то витиевато (особенно с unicode-символами был шанс напортачить).
Новичек мог даже копи-пастить с ошибкой по незнанию.

Поэтому некому проверить или сказать годится-не-годится.
Базовый вариант функций можно было упрощать делая эквивалентные преобразования
доводя до КНФ или ДНФ любыми путями и потом всё равно нужна табличка
для метода Карно-Вейча. Поэтому я решил не делать трансформации а сразу вычислить табличку.

Альтернативный путь - это вот так вот применяя законы склеивания-поглощения и Де-Моргана
просто привести к минимальной КНФ.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118414
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" Автор покинул топик и больше не появлялся ".
Дело не в его присутствии или отсутствии.

" Само задание написано как-то витиевато (особенно с unicode-символами был шанс напортачить). Новичек мог даже копи-пастить с ошибкой по незнанию ".
Задание написано конкретно и лаконично:
Дана функция F = (¬x ∨ z) ≡ (y ↓ ¬z). Найти ДНФ этой функции.
Здесь ничего не прибавишь и ничего не удалишь. Правильность копирования формул не входит в круг булевой алгебры.

" Поэтому некому проверить или сказать годится-не-годится ".
Если это относится к ТС, то нас это не должно волновать. Если три человека, независимо друг от друга, получили одинаковые таблицы истинности для этой функции, то это и есть проверка правильности.

" Базовый вариант функций можно было упрощать делая эквивалентные преобразования доводя до КНФ или ДНФ любыми путями и потом всё равно нужна табличка для метода Карно-Вейча. Поэтому я решил не делать трансформации а сразу вычислить табличку ".
Можно. Карты Карно - это та же таблица, только нарисованная иначе. Карты Карно информативны, если число переменных не превышает 4. После 4-х нахождение импликант уже не так очевидно. Для человека, который понимает эту теорию, не составляет труда найти минимальную ДНФ по таблице истинности или заполнить карту Карно по формуле, не прибегая к таблице истинности. Я тоже без трансформаций построил таблицу истинности этой функции, только на основании определений функций, причем привел все этапы построения, чтобы любой человек мог убедиться в соответствии исходной формулы и построенной таблицы.

Мы долго говорим, проще показать, как это сделать:
(¬x ∨ z) ≡ (y ↓ ¬z) = (¬x ∨ z) ≡ ¬(y \/ ¬z) = (¬x ∨ z) ≡ ¬yz
Здесь мы использовали факт, что стрелка Пирса – это отрицание дизъюнкции и использовали привило де Моргана для дизъюнкции: отрицание дизъюнкции равно конъюнкции отрицаний.

По определению: a ≡ b = ¬a¬b \/ ab.

Преобразуем правую и левую части этой дизъюнкции отдельно, чтобы не загромождать преобразования.
¬a¬b = ¬(¬x ∨ z)) /\ ¬(¬yz) = x¬z /\ (y \/ ¬z) = xy¬z \/ x¬z = xy¬z \/ x¬y¬z \/ xy¬z = x¬y¬z \/ xy¬z
Здесь мы использовали факты, что конъюнкция дистрибутивна относительно дизъюнкции слева, a1 = a, a\/¬a = 1 и a\/a = a.

Аналогично преобразуем правую часть операции ≡:
ab = (¬x ∨ z) /\ ¬yz = ¬x¬yz ∨ ¬yz = ¬x¬yz ∨ ¬x¬yz ∨ x¬yz = ¬x¬yz ∨ x¬yz

Соединим левую и правую части и получим совершенную ДНФ:
¬a¬b \/ ab = x¬y¬z \/ xy¬z \/ ¬x¬yz ∨ x¬yz,
для которой минимальной ДНФ будет ¬yz \/ x¬z.

Окончательно получаем
F = (¬x ∨ z) ≡ (y ↓ ¬z) = ¬x¬yz \/ x¬y¬z \/ x¬yz \/ xy¬z = ¬yz \/ x¬z
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С первой и третьей я ошибся. Возможно когда переносил данные из таблицы в карточку карно.

Minimized F1:
xyzf1 f1min0 0 0 0 00 0 1 1 10 1 0 0 00 1 1 0 01 0 0 1 11 0 1 1 11 1 0 1 01 1 1 0 1
Minimized F2:
xyzf2 f2min0 0 0 1 10 0 1 0 00 1 0 1 10 1 1 0 01 0 0 1 11 0 1 1 11 1 0 1 11 1 1 0 0
Minimized F3:
xyzf3 f3min0 0 0 0 00 0 1 0 00 1 0 0 00 1 1 0 11 0 0 1 11 0 1 0 01 1 0 0 01 1 1 1 1

Process finished with exit code 0
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118423
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" Альтернативный путь - это вот так вот применяя законы склеивания-поглощения и Де-Моргана просто привести к минимальной КНФ ".

Покажем, как это можно сделать для рассматриваемой функции.

Определим операцию склеивания. Пусть Axi \/ A¬xi, где A булево выражение, не зависящее от xi. Операцией склеивания называется последовательность операций:
Axi \/ A¬xi = A(xi \/ ¬xi) = A /\ 1 = A.
Т.е. два набора переменных булевой функции склеиваются, если эти наборы отличаются вхождением только одной переменной.

Минимизация с использованием операции склеивания сводится к трем этапам.

1. Совершенную ДНФ функции F запишем в виде наборов входных переменных, на которых функция равна 1:
Код: plaintext
1.
2.
3.
4.
0 0 1
1 0 0
1 0 1
1 1 0

2. Теперь сравним каждый набор со всеми другими. Если два набора отличаются только одной переменной, то мы их склеиваем и записываем в следующий столбик. При этом переменную, по которой произошло склеивание заменим на значок *, а сами эти наборы отметим значком +:
Код: plaintext
1.
2.
3.
4.
0 0 1 +    * 0 1 (1 и 3 наборы)
1 0 0 +    1 0 * (2 и 3 наборы)
1 0 1 +    1 * 0 (2 и 4 наборы)
1 1 0 +    
Поскольку во втором столбике нечего склеивать, то процесс закончен. Мы получили простые импликанты: ¬yz, x¬y и x¬z.

3. Нужно найти покрытие совершенной ДНФ минимальным числом простых импликант, чтобы получить минимальную ДНФ.

Этот способ называется алгоритмом Квайна и применяется для функций, зависящих более чем от 4-х переменных. Кроме того, он легко автоматизируется. Моей первой реальной программой была реализация этого алгоритма на языке Аналитик для первого отечественного персонального компьютера Мир-2, когда я был четверокурсником, но вне учебного процесса. Как говорит мой друг о быстротечности времени: "Только вчера был в бане, а уже полгода прошло!".

Бум минимизации прошел в прошлом веке, одной (или сотней) операцией больше или меньше. Но в каждой программе есть условия ветвления или повторения. Большинство программистов пишут их на основании своих ощущений истинности. А ведь от правильности условий зависит работа программы. В сложных случаях я всегда использую формальные методы булевой алгебры с включением выкладок в комментарии.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118424
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wlr-l
" Автор покинул топик и больше не появлялся ".
Дело не в его присутствии или отсутствии.

" Само задание написано как-то витиевато (особенно с unicode-символами был шанс напортачить). Новичек мог даже копи-пастить с ошибкой по незнанию ".
Задание написано конкретно и лаконично:
Дана функция F = (¬x ∨ z) ≡ (y ↓ ¬z). Найти ДНФ этой функции.
Здесь ничего не прибавишь и ничего не удалишь. Правильность копирования формул не входит в круг булевой алгебры.

И автор устранился, и буквы не лезут. Это все намекает перейти на привычную форму записи.
Думаю такая запись намного понятнее тут присутствующим:
Код: sql
1.
F = (!x || z) && (y || !z)


И это не ДНФ , а КНФ
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 3 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Найдите д.н.ф. и к.н.ф. для :
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]