powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Найдите д.н.ф. и к.н.ф. для :
88 сообщений из 88, показаны все 4 страниц
Найдите д.н.ф. и к.н.ф. для :
    #40114791
artemplatonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дискретная математика
Найдите д.н.ф. и к.н.ф. для формул:
1) F = ( ¬x ∨ z ) ≡ ( y ↓ ¬ z)
2) F = ( ¬x → z) | ((y→¬z)|x)
3) F = ¬(z≡(x|y))∧(¬x→z)
помогите пожалуйса
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40114825
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40114832
artemplatonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделайте задание за меня пожалуйста
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40114849
Фотография Имя пользователя1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemplatonov
сделайте задание за меня пожалуйста
бывает.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40114938
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemplatonov
сделайте задание за меня пожалуйста

Это верх наглости!
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40114983
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemplatonov, каждую ф-цию представь в табличном виде. После этого днф-кнф можно автоматом получить. Всего лишь 3 переменные, чуть не устно, пособие прочти.
Считаю, что помог.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115014
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стрелочка вправо - это кажется импликация. Дает false когда 1 -> 0 а в остальных случаях true.

Стелочка вниз - хз.

Чем мог - тем помог.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115044
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Стелочка вниз - хз.
Возможно , что это штрих Шеффера. Если не он, то сорри.
Они разные бывают.
Импликация это НЕ(А) ИЛИ В.
Штрих - что-то вроде отрицания коньюнкции.
Шеффер'ом, если это он, назывыают функцию, которой одной достаточно вместо всех остальных.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115134
mayton
Дает false когда 1 -> 0 а в остальных случаях true.

фигасе логика у этих математиков
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115172
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновляю сведения.
exp98
Штрих Шеффера- что-то вроде отрицания коньюнкции.
"|" палка - один штрих Шеффера = коньюнкци Я отрицани Й
Стелочка вниз - второй штрих Шеффера (стрелка Пирса)= отрицание коньюнкции
Импликация= НЕ(А) ИЛИ В.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115179
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
mayton
Дает false когда 1 -> 0 а в остальных случаях true.

фигасе логика у этих математиков

Там смысл шел не от булевой алгебры а от формальных логических систем. Кажется я что-то читал
у И.Братко в учебнике по Prolog.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115197
кстати, интересно, а чё он пришёл на форум программистов?
видать на форуме математиков его уже послали?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115250
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом форуме бывало всяко. И математики-пенсионеры приходили. С шахматами и простыми числами.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115258
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" а чё он пришёл на форум программистов? "

Наверно потому, что всё, что находится между if и then или внутри скобок if () или в SQL после ON или WHERE и еще во многих местах, это и есть или ДНФ или КНФ.

" фигасе логика у этих математиков "

Это всего лишь формальная модель, которая никак не связана с нашими житейскими представлениями об истинности и ложности.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115268
Wlr-l
Наверно потому, что всё, что находится между if и then или внутри скобок if () или в SQL после ON или WHERE и еще во многих местах, это и есть или ДНФ или КНФ.

ну давайте ещё интегралов напихаем в наши if и спляшем с ними
он то пришёл сюда с формулами, мол "решите мне" (следующий шаг - нарисуйте графики)
а тут вообще про другое
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115285
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну можно в Вопрос-Ответ перенести.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115393
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" давайте ещё интегралов напихаем в наши if "

Без проблем. Для булевых (логических) функций определены операции дифференцирования и интегрирования:

https://ru.wikipedia.org/wiki/Производная_булевой_функции#:~:text=Производная булевой функции (булева производная,и анализе дискретных динамических систем.

Чуть более подробно можно посмотреть, например, здесь

http://www.rusnauka.com/20_DNII_2012/Matemathics/2_114385.doc.htm

Первой работой в этом направлении на доступном нам языке, я думаю, была

Бохманн Д. Булевское дифференциальное исчисление. Обзор // Труды АН СССР, Техническая кибернетика, т. 15, № 5, 1977. - с. 68-75.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115423
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сдавал спецкурс по дискретной математике(МГУ), но что-то этих аббревиатур не помню.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115501
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
" Я сдавал спецкурс по дискретной математике(МГУ), но что-то этих аббревиатур не помню. "

Скорее всего вы учили дискретную математику по книге Яблонского, профессора МГУ,

Яблонский С. В. Введение в дискретную математику: Учебное пособие для вузов. — 6-е изд. — М.: Высшая школа, 2010. — 384 с. — ISBN 978-5-06-004681-6.

Возможно, не этого издания.

Загляните в эту книгу часть 1. Функциональные системы с операциями, параграф 4. Разложение булевых функций по переменным. Совершенная дизъюнктивная нормальная форма.


Психологи говорят, что человек с возрастом лучше помнит то, что происходило в далеком прошлом, чем то, что происходило в недавнем прошлом, скажем, вчера.

Я, например, хорошо помню свои первые проекты и забываю написанное вчера.
У вас в этом плане огромное преимущество, вы не помните студенческие годы.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115527
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
форум ITшный, всё давно посчитано за людей, ничего думать не надо, вопрос чисто на копирование
дизъюнктивная и конъюнктивная н. формы соответственно видны здесь:
1)
https://www.wolframalpha.com/input/?i=Or [Not[x],z]==Nor[y, Not[z]]
2)
https://www.wolframalpha.com/input/?i=Nand [Implies[Not[x],z],Nand[Implies[y,Not[z]],x]]
3)
https://www.wolframalpha.com/input/?i=And%5BNot%5Bz%3D%3DNand%5Bx%2Cy%5D%5D%2CImplies%5BNot%5Bx%5D%2Cz%5D%5D]https://www.wolframalpha.com/input/?i=And[Not[z==Nand[x,y]],Implies[Not[x],z]]
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115529
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.wolframalpha.com/input/?i=Or%5BNot%5Bx%5D%2Cz%5D%3D%3DNor%5By%2C+Not%5Bz%5D%5D]https://www.wolframalpha.com/input/?i=Or[Not[x],z]==Nor[y, Not[z]]
https://www.wolframalpha.com/input/?i=Nand%5BImplies%5BNot%5Bx%5D%2Cz%5D%2CNand%5BImplies%5By%2CNot%5Bz%5D%5D%2Cx%5D%5D]https://www.wolframalpha.com/input/?i=Nand[Implies[Not[x],z],Nand[Implies[y,Not[z]],x]]
https://www.wolframalpha.com/input/?i=And%5BNot%5Bz%3D%3DNand%5Bx%2Cy%5D%5D%2CImplies%5BNot%5Bx%5D%2Cz%5D%5D]https://www.wolframalpha.com/input/?i=And[Not[z==Nand[x,y]],Implies[Not[x],z]]
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115597
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала надо табличку истинности сделать.

Что-то вроде
xyzF1F2F3
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115641
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artemplatonov
Дискретная математика
Найдите д.н.ф. и к.н.ф. для формул:
1) F = ( ¬x ∨ z ) ≡ ( y ↓ ¬ z)
2) F = ( ¬x → z) | ((y→¬z)|x)
3) F = ¬(z≡(x|y))∧(¬x→z)
помогите пожалуйса

Офигеть! Сдавал в МГУ спецкурс по дискретной математике. Нифига не понял.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115664
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

это подраздел математической логики,
вся эта производная муть сводится к трём простым операциям: AND,OR,NOT
упрощается формулами булевой алгебры
через какие символы пишут - это уже кто во что горазд, не напасёшся следить за всеми вариациями.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40115703
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xyzF1F2F3000001010011100101110111
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116026
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда vikkiv привел ссылки, я подумал, что это конец обучению.

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

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

" вся эта производная муть ... "

- Это не производная муть, это совсем даже не производная муть, дружище Биттнер, - сказал бы Мюллер и объяснил почему:

Имеется четыре функции от одной переменной:

Код: plaintext
1.
2.
3.
x  f0(x)  f1(x)  f2(x)  f3(x)
0   0      0      1      1
1   0      1      0      1

Наиболее важной из них является функция f2(x) - отрицание (¬). Индекс функции соответствует двоичному числу в колонке этой функции.

Для двух переменных будет уже 16 различных функций. Функции, играющие важную роль в булевой алгебре и не только в ней, получили названия. Например, функции из задания ТС называются:

↓ f8(x) стрелка Пирса (другое название: функция Вебба)
≡ f9(x) эквивалентность
→ f13(x) импликация
| f14(x) штрих Шеффера

Могут использоваться другие значки, ГОСТа здесь нет.

" вся эта производная муть сводится к трём простым операциям: AND,OR,NOT "

Да, точно так же, как умножение может быть сведено к сложению в арифметике или tg может быть выражен через sin и cos в тригонометрии, любая булева функция может быть представления с помощью функций конъюнкции, дизъюнкции и отрицания. Т.е. эти три функции образуют функционально полную систему функций (не математики говорят образуют "базис"). Функциональной полнотой обладают и другие наборы функций, например, набор, состоящий из всего лишь одной функции штрих Шеффера.

Цель задания состоит в том, чтобы заданные функции представить в виде ДНФ и СНФ или, другими словами, представить их с помощью функций конъюнкции, дизъюнкции и отрицания, или, иными словами, разложить эти функций по переменным (ссылку на учебник я уже приводил). А упрощение - это уже другая песня.

Странно, что для программистов - это представляет трудность. Одни получают сведения из учебников по конкретному языку программирования, другие сдают (правда не говорят, что сдали) курс дискретной математики в МГУ и не помнят. Интересно, как у них там, например, в Стэнфордском университете? Ведь программы обучения радикально не отличаются.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116169
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так должн быть. Сделайте 4-eyes check.
xyzf1f2f30 0 0 0 1 00 0 1 1 1 00 1 0 0 1 10 1 1 0 1 11 0 0 1 1 01 0 1 1 1 11 1 0 1 1 01 1 1 0 1 1
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116250
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция F2 какая-то вырожденная получается. Или я ошибся?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116276
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

У мну только F1 совпало. Смотреть под "Proof (F1 F2 и F3)" (справа промежуточные формулы, для проверки)
¬(A & B) (¬A & ¬B)ABShefferPeers0011011010101100

maytonproof(x ∨ z)(¬y ∨ ¬z)XYZF1F2F3F1F2F3(¬x→z)(x|y)¬(z≡(x|y))(y→¬z)((y→¬z)|x)00001001001111001110100110110100110100111101101100011001100110111111101011111101101011011011010010
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116279
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё-таки источника разнятся. В Мендельсоне и в Яблонском наоборот определены Шеффер и Пирс. По ним здесь и сделал.
Я же помню эту фразу про Шеффера "отрицание конъюнкции". Значит не там смотрел, или другая школа была.
В моей первой рабочей машине не жигули наряду с И ИЛИ был и встроенный Шеффер, оттуда и запомнил, но ни разу не пользовался.

авторОднако, пока ещё для получения совершенной ДНФ придется пошевелить извилинами и пальцами. Выеденного яйца не стоит. Тем более, что мы ждали, когда ТСу это уже не надо, жирно было бы подсказывать. Оставшееся можно устно либо регулярками, здесь нет функций - констант.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116280
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Меня совершенно сбила с толку эта вертикальная палочка. Выглядит как битовая дизъюнкция в С++.

Переписал. Давай еще раз сверим часы.

xyx ⟶ y (Implication) x ↓ y (Pierce arrow) x | y (Sheffer-stroke)0 0 1 1 10 1 1 0 11 0 0 0 11 1 1 0 0

И сами функции.

xyzf1f2f30 0 0 0 1 00 0 1 1 0 00 1 0 0 1 00 1 1 0 0 01 0 0 1 1 11 0 1 1 1 01 1 0 1 1 01 1 1 0 0 1
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116282
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98

Я же помню эту фразу про Шеффера "отрицание конъюнкции". Значит не там смотрел, или другая школа была.

Да. Если смотреть русские и английские вики и статьи - то определение операции Шеффера может быть
просто переписано через Де-Моргана. Есть такое

Код: sql
1.
not(A and B)



и такое

Код: sql
1.
not A or not B
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116284
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои сорц.

Я специально форматирую как FIXED чтобы сохранить математические символы. Ибо это самая вкусная часть сорца.
Дурацкий движок портит их если заворачивать в SRC.

XBoolean
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// 30/11/2021 : mayton

class XBoolean(val value : Boolean) extends AnyVal {

  def ∪(that : XBoolean) : XBoolean = new XBoolean(value || that.value)
  def ∩(that : XBoolean) : XBoolean = new XBoolean(value && that.value)

  // Implication
  def ⟶(that : XBoolean) : XBoolean = new XBoolean(!value || that.value)
  // Pierce arrow
  def ↓(that : XBoolean) : XBoolean = new XBoolean(!(value || that.value))
  // NAND, Sheffer-stroke
  def |(that : XBoolean) : XBoolean = new XBoolean(!(value && that.value))

  def ==(that : XBoolean) : XBoolean = new XBoolean(value == that.value)
  def unary_! : XBoolean = new XBoolean(!value)

  override def toString: String = if (value) "1" else "0"

}

main
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
  implicit def fromInt(x: Int) : XBoolean = new XBoolean(if (x == 1) true else false)
  implicit def fromBoolean(x: Boolean) : XBoolean = new XBoolean(x)

  def main(args : Array[String]) : Unit = {

    def f1(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = !x ∪ z == (y ↓ !z)
    def f2(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = (!x ⟶ z) | ((y ⟶ !z) | x)
    def f3(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = !(z == (x | y)) ∩ (!x ⟶ z)

    println("[C S V=,]")
    println("x,y,x ⟶ y (Implication), x ↓ y (Pierce arrow), x | y (Sheffer-stroke)")
    for(xx <- 0 to 1 ; yy <- 0 to 1) {
      val x : XBoolean = xx
      val y : XBoolean = yy
      println(s"${x}, ${y}, ${x ⟶ y}, ${x ↓ y}, ${x | y}")
    }
    println("[/CSV]")

    println("[C S V=,]")
    println("x,y,z,f1,f2,f3")
    for(xx <- 0 to 1 ; yy <- 0 to 1 ; zz <- 0 to 1) {
      val x : XBoolean = xx
      val y : XBoolean = yy
      val z : XBoolean = zz
      println(s"${x}, ${y}, ${z}, ${f1(x,y,z)}, ${f2(x,y,z)}, ${f3(x,y,z)}")
    }
    println("[/CSV]")
  }
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116310
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас ф-ции совпадают (я при вставке сюда последнюю строку потерял, но там то же самое, смотрел).
mayton
Выглядит как битовая дизъюнкция в С++.
Переписал. Давай еще раз сверим часы.
Меня тоже, причём сначала я только стрелку заметил, а палка с галкой как-то слиплись в одно. Позже вспоминаю, что Ш. обозначался палкой, а тут стрелка, в общем проехали...

Я в эксе посчитал, а здесь что? какая-то смесь С с Хаскелем или это уже С++футуристический такой?
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116315
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мои сорц.
а здесь мой "сорц"
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116326
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это Scala.

Ну что? У нас - консенсус по таблице истинности.

Можно переходить ко 2 части.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116340
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДНФ рисовать неинтересно.

Любой дурак нарисует по табличке.
Давайте сразу совершенную и минимизированную ДНФ.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116346
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она же будет и совершенной. А вот минимальную или, там, тупиковую, надо методы читать, конъюнкции удалять например , ни разу не интересовался. И меру взять.
Тут недавно вроде про NP=P писалось, там днф были ... да только я не верю.

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

Можно в уме. Можно на карточках Карно-Вейча.

Карточки перестают эффективно работать где-то после 8 аргументов.

Потому-что запрашиваемые области перестают быть связными.

Дальше - я только помню метод Квайн-макласска и то со словарем.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116357
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закрашиваемые.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116363
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Относительно штрих Шеффера и стрелки Пирса. Я нигде не видел разногласий. Штрих Шеффера всегда был отрицанием конъюнкции, а стрелка Пирса – отрицанием дизъюнкции. Ссылку на книгу Яблонского я уже приводил. Шеффер и Пирс (а может быть Вебб) впервые описали эти функции. Стрелку Пирса я рекомендую понимать именно как отрицание дизъюнкции. Так будет проще работать с формулами.

Относительно выеденного яйца. Я так понимаю, что по ссылкам vikkiv не ходили.

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

Поскольку поезд для ТС ушел, то приведу пример получения ДНФ для первой функции из задания. Остальные решаются аналогично. И не имеет смысла давать решение всех задач, чтобы не затруднять работу преподавателей.

Левая часть равнозначности:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
x	Z	¬X	Z	¬X ∨ Z
0	0	1	0	1
0	1	1	1	1
1	0	0	0	0
1	1	0	1	1

Правая часть равнозначности
y	Z	Y	¬Z	Y ↓ ¬Z
0	0	0	1	0
0	1	0	0	1
1	0	1	1	0
1	1	1	0	0

Объединяем левую и правую части:
x	y	z	¬X ∨ Z	Y ↓ ¬Z	≡
0	0	0	1	0	0
0	0	1	1	1	1
0	1	0	1	0	0
0	1	1	1	0	0
1	0	0	0	0	1
1	0	1	1	1	1
1	1	0	0	0	1
1	1	1	1	0	0

Совершенная ДНФ: ¬x¬yz \/ x¬y¬z \/ x¬yz \/ xyz

Строим карту Карно (диаграмму Вейча) или применяем алгоритм Квайна, или применяем законы булевой алгебры, или есть еще десяток других способов и находим три импликанты: ¬yz, x¬z и x¬y.

Тупиковые ДНФ:
¬yz \/ x¬z \/ x¬y
¬yz \/ x¬z

Вторая ДНФ будет минимальной ДНФ.

Первая тупиковая ДНФ будет свободной от "гонок".

Собственно, и всё.
Схемотехники могут привести эту ДНФ к выбранному базису, например, штриху Шеффера.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116406
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня получилось так:

f1 = !yz ∪ !yx ∪ x!z
f2 = !z ∪ !yx
f3 = x!y!z ∪ xyz
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116469
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не делал домашнее задание((((
Wlr-l
Относительно штрих Шеффера и стрелки Пирса. Я нигде не видел разногласий.
А я увидел, поэтому у меня по-разному написано вначале. И это тоже книга, и тоже компетентного автора, но голосованием 2 к 1 вкупе с собственными воспоминаниями...

И, да! для пущей полноты не хватает объявления, по какому критерию оптимизация.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116474
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корреляция показывает меру линейной зависимости каждой Fk от X Y Z
Код: sql
1.
2.
3.
4.
corr		
F1	0,50000	-0,50000	0,00000
F2	0,25820	-0,25820	-0,77460
F3	0,57735	 0,00000	0,00000
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116478
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больший к-т можно трактовать как меньшую степень пересекаемости с другой переменной.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116483
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корреляции и прочие стат-методы КМК не работают в этой области.

У меня была идея как подбирать ключи симметричного шифра базируясь на известной шапке
двоичного файла который был зашифрован.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116492
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Корреляции и прочие стат-методы КМК не работают в этой области.
Имеются публикации? Я не проверял, но на материале этого одного примера есть показания к применению как градиентное направление, чтобы отсечь неблагоприятные ветки перебора.
Например.
f1 = !yz + !yx + x!z
f2 = !z + !yx
f3 = x!y!z + xyz
Код: sql
1.
2.
3.
4.
corr		
F1	0,50000	-0,50000	0,00000
F2	0,25820	-0,25820	-0,77460
F3	0,57735	 0,00000	0,00000

F3 - Х можно вынести за скобки, Y и Z не сильно влияют, т.к. входят и с- "!", и без-.
F2 - Z входит в полной мере, причём даже знаки совпадают с отрицанием.
F1 - и X и Y можно одинаково вынести за скобки, и знак тоже совпадает.
Как сказать, эвристика, блин.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116514
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем искать корреляции?

Если говорить о системотехнике, то F1,F2 очень похожи. И мы можем выход F1 использовать
для частичного расчёта F2 когда x = 0. Особенно если мы говорим о проектировании единого устройства
в каком-то базисе элементов.

Но поскольку в задаче не сказано ничего - то я рассматриваю все три функции как независимые.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116530
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И если в AND или OR можно искать некое подобие монотонности
например можно представить как скалярное произведение с некой пороговой функцией
на выходе то чёртов XOR например ломает всю картинку.

Как его учитывать? Вот и получается криптография.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40116573
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Зачем искать корреляции?
... я рассматриваю все три функции как независимые.
Я их такими же рассматриваю. Конкретнее, они выведены в этом порядке
F1: corr(X, F1) corr(Y, F1) corr(Z, F1) Т.о., приведена связь между одной F() и каждой переменной
F2: corr(X, F2) corr(Y, F2) corr(Z, F2)
F3: corr(X, F3) corr(Y, F3) corr(Z, F3)
Да, отдаю себе отчёт, что переменные упорядочены по-разному.

Какая разница XOR или другое? Если переменная значимо влияет, то связь будет. Поменяй местами столбцы X Y Z, матрица корреляций не изменится, хотя переменные не взаимозаменяемы. Когда переменная доминирует, то F() следует за всеми её изгибами.
Зачем искать? никого не заставляю, заранее не знаешь, где найдёшь.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #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
Найдите д.н.ф. и к.н.ф. для :
    #40118490
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте в пятницу автоматизируем Квайна. Надо только удачную форму представления формул придумать.

Мне кажется что строки тут - не вариант. Нужны списки. Или еще какие-то структуры.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118500
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квайн это кто или что? Топик целиком не читал.

И с картами Карно не все варианты охватываете, есть варианты с UB или пофиг что на выходе.
Например отображение десятичного знака на индикаторе: на входе 4 бита, а на выходе интересны только первые 10 состояний (0-9), что покажут значения 10-15 неинтересно, т.к. это за пределами предметной области. На этом предположении выводится наиболее простая ДНФ или КНФ, что упрощает разработку железного девайса решающего эту задачу.

ДНФ и КНФ это в первую очередь для проектирования цифровой электроники надо. После вывода оптимальных формул оно легко в железе реализуется с минимальным оверхэдом.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118518
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас нет UB. Вся таблица заполнена. UB приколен тем что в значении карты ставим звездочку и далее
по ситуации можем брать либо 0 либо 1 что нам выгоднее. Обычно ставят 1 чтобы для СДНФ на Карно
можно было-бы обводить прямоугольником области единиц как можно более крупно.

Под Квайном я имел в виду https://ru.wikipedia.org/wiki/Метод_Куайна_—_Мак-Класки
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118673
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Безотносительно к конкретному алгоритму.
О списках/не списках не рано ли с типа данных начинать?
Мой мнений в том, что работа с КНФ/ДНФ то же, что с деревьями. Это подбор комбинаций под заданную таблицу.
Сначала парсинг в дерево.
Преобразования состоят из перемещений, удалений, вставок шаблонных кусков.

Можно идти в одну сторону - в сторону упрощения.
Можно обратным выводом: от базовых формул логики и наращивать усложнения.
Случайный метод: от простого к сложному отжигом, роевым, генетическим ... пока таблица не станет хэммингово близкой к нужной. Затем доработать напильником, мож что и получится. Эффективность этого способа мне не известна.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118684
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
Безотносительно к конкретному алгоритму.
О списках/не списках не рано ли с типа данных начинать?
Мой мнений в том, что работа с КНФ/ДНФ то же, что с деревьями. Это подбор комбинаций под заданную таблицу.
Сначала парсинг в дерево.

Ну... если ты знаток компилляторов и AST или Lisp-а то тебе наверное будет интересно декомпозировать
любую задачу в деревья и бегать по ним.

Но в топике сидят обычные разрабы которые могут и в SQL что-то сделать или в JavaScript.

Если данная задача решается в строках (вспоминаем кстати нормальные алгоритмы Маркова..) - то
это просто прекрасно.

Если данная задача требует двух-уровнего массива или списка - тоже хорошо. С пивом пойдет.

Деревья - это too much дружище. Что нужно для Квайна-Мак-класски?

Нужно такую колбасу

Код: sql
1.
x1*x2*!x3*x4 | !x1*!x2*!x3*x4 | .....



привести к минимальной форме.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118701
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Деревья - это too much дружище. Что нужно для Квайна-Мак-класски?
Нужно такую колбасу
Код: sql
1.
 x1*x2*!x3*x4 | !x1*!x2*!x3*x4 | ..... 

привести к минимальной форме.
Никак нет, дружище, M... Эту колбасу приводят любым методом, если он танцует от СДНФ.
Конечно можно запулить тупой подбор
x1*x1*!x1*x1
x1*x1*!x1*x2
x1*x1*!x1*x3 ..., но я писал не об таком. Написано же было "шаблоны" для краткости, подразумевались различныи знании априорных свойств предметки. В частности, ассоциативности/дистрибутивности, тождествы, всякии исключении переменных и т.п. Манипуляция шаблонами предметки эквивалентна (или почти) оной с отрезками деревьев (можно называть их "определяющими соотношениями" или правилами вывода). Она - аденоквантное воплощение хода мыслей. Я писал об этом. О быстродействии или памяти речи не было совсем. Ну и вообще, это всё было очень общими набросками вариантов.
Почему нужен именно "Квайн-Мак", мне неведомо.

Но деревья предметки обрабатывают и чрез SQL тоже - строки эквивалентны веткам, я не против, можно и транспонировать. Но вряд ли у редовых разрабов строки первичны в мышлении при обработке деревьев.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118708
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто предлагаю строку на попробовать. Не выйдет - можно углублять.

Но до того как ты кинешся создавать деревья - подумай что тебе всё равно нужен API
для поиска склеиваний-поглощений.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118709
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
SQL тоже - строки эквивалентны веткам,
Но вряд ли у редовых разрабов строки первичны в мышлении при обработке деревьев.
Тем более, если, например, в Оракле матриы задаются вообще не строками таблицы. Тут уж даже строки матрицы - и те приходится представлять мысленно.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118714
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98

Случайный метод: от простого к сложному отжигом, роевым, генетическим ... пока таблица не станет хэммингово близкой к нужной. Затем доработать напильником, мож что и получится. Эффективность этого способа мне не известна.

Это офигенски интересно но я-бы начал с Квайна чтобы потом уже выйти на те методы
которые способны Квайна побить.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118720
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
В начале же ввёл обозначение для краткости А\В= А-В= "А без В" (между прочим тоже широко используется).

Ммм... такое себе. В С-подобных языках бэкслеш всегда имел особое значение. Типа эскейп-символа.
Вобщем его экранировать надо. Будет задвоение слешей. Насчет перегрузки операции - тоже самое
скорее всего.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118763
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не навязываю, то было пятничным развлечением, и оно никому не понравилось.
однако насчёт реальности. Она существует и вне Си, и надпись А\В у мне со школьных лет, когда решались примеры для закрепления материала. Если танцевать от множеств:
А\В = A & !B = !(!A | B) = !(A=>B)
A Xor B = А\В + B\A = (A+B) \ (AB), (по последнему видно, почему знак "-" здесь тоже оправдан) след-но А\В = A & (A Xor B)
на выбор или вообще выбросить, мне всё равно.
Кстати Xor для множеств известен как "симметрическая разность" - ещё один аргумент для ограниченного использования минуса.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40118812
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это самая важная функция в криптографии.
...
Рейтинг: 0 / 0
Найдите д.н.ф. и к.н.ф. для :
    #40124507
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закрываю свой долг по некорректным функциям

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  def f1(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = !x ∪ z == (y ↓ !z)
  def f2(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = (!x ⟶ z) | ((y ⟶ !z) | x)
  def f3(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = !(z == (x | y)) ∩ (!x ⟶ z)


  def f1min(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = (x ∩ !y) ∪ (x ∩ !z) ∪ (!y ∩ z)
  def f2min(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = (!z) ∪ (!y ∩ x)
  def f3min(x : XBoolean, y : XBoolean, z : XBoolean) : XBoolean = (x ∩ y ∩ z) ∪ (x ∩ !y ∩ !z)

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


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