ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной 
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Способи задання булевих функцій Лекція № 5 Тема: Булеві функції План лекції: 1. Поняття булевої функції. 2. Способи задання булевих функцій. 3. Число булевих функцій аргументів. 4. Елементарні булеві функції. 5. Реалізація булевих функцій формулами. 6. Рівносильність та тотожність формул. 7. Принцип двоїстості. Поняття булевої функції При обробці дискретної інформації найчастіше використовують дискретні пристрої, в яких вхідні та вихідні сигнали мають два різних рівні. Це пов’язано з необхідністю простоти фізичної реалізації пристроїв, з необхідністю економічності і надійності виконання логічних і арифметичних операцій. Одному з рівнів присвоюється символ 0, іншому – 1 і, таким чином, пристрій здійснює обробку двійкової інформації. В зв’язку з цим природно розглянути функції, які визначені на двоелементній множині і набувають значень в ній ж. Такі функції називаються булевими функціями (інші назви: функції алгебри логіки, двійкові функції, перемикальні функції). Булеві функції отримали свою назву від прізвища англійського математика Джорджа Буля (1815–1864), який першим застосував математичні методи до логіки. Булеві функції застосовуються в обчислювальній техніці для опису пристроїв переробки дискретної інформації, яка розкладається на елементарні одиниці – біти, які в цих пристроях реалізуються сигналами, що описуються двійковими змінними – булевими змінними. Булеві функції належать до класу двозначних однорідних функцій (однорідною називається функція, яка для будь-яких і будь-яких скалярів таких, що , задовольняє умову ). Нехай задана множина змінних і множина . Зазначимо, що елементи множини 0 і 1 не є числами в звичайному розумінні, це – формальні символи. Найбільш розповсюджена їх інтерпретація – логічна: "ні" – "так", " хибне " – "істинне". Означення. Булевою функцією називається функція , яка визначена і набуває своїх значень на множині . Таким чином, областю визначення булевої функції є множина впорядкованих наборів з , а множиною значень є множина : , . Отже, . Оскільки множина скінченна, то задати відображення означає задати множину наборів з і для кожного набора вказати його образ в . Позначимо набір значень змінних через . Таким чином, булева функція ставить у відповідність кожному впорядкованому набору , якій складається з 0 і 1, або 0, або 1. Набір , , , називають ще двійковим. Лема. Число різних наборів , , , значень для аргументів булевої функції дорівнює .Приклад. Для функції можна задати різних двійкових наборів значень аргументів : Означення. Булева функція називається цілком визначеною, якщо її значення визначено для всіх двійкових наборів, в іншому випадку булева функція називається не цілком визначеною або частковою.Означення. Двійковий набір, на якому булева функція обертається в 0, називається нульовим. Двійковий набір, на якому булева функція обертається в 1, називається одиничним. Набір, на якому функція не визначена, називається байдужим.Якщо двійкових наборів функції є байдужими, то часткову функцію можна довизначити способами. Інакше кажучи, кожній такій частковій функції відповідає множина з цілком визначених булевих функцій, отриманих шляхом різних довизначень.Означення. Змінна , яка є аргументом булевої функції , називається неістотною (фіктивною), якщо = при будь-яких значеннях інших змінних, тобто якщо зміна значення в будь-якому наборі значень змінних не змінює значення функції. В цьому випадку функція істотно залежить від змінної, тобто являє собою функцію від змінної.Кажуть, що функція отримана з функції видаленням фіктивної змінної, а функція отримана з функції введенням фіктивної змінної, причому ці функції вважаються рівними.Приклад. означає, що при будь-яких значеннях незалежно від значень . Змінна – фіктивна.Означення. Константою 0 (константою 1) називається цілком визначена булева функція, яка на всіх наборах дорівнює 0 (1), тобто функція з неістотними змінними. Способи задання булевих функцій Прийнято наступні способи завдання булевих функцій: 1. Табличний спосіб. З означення випливає, що для задання булевої функції достатньо вказати, які значення функції відповідають кожному з наборів значень аргументів, тобто скласти таблицю значень функції. Таблиця значень булевої функції називається таблицею істинності булевої функції. Таблиця істинності – таблиця, в якій кожному двійковому набору значень змінних ставиться у відповідність значення функції на даному наборі або прочерк, якщо значення функції на даному наборі не визначено. В останньому випадку байдужий набір в таблицю можна не включати.  |  | … |  |  | | | … | |  | | | … | |  | … | …. | … | … | … | a1 | a2 | … | an | ,  | … | … | … | … | … | | | … | |  | | | | | | | | Двійковий набір можна прочитати як -розрядне ціле двійкове число. В силу цього рядки в таблиці істинності зручно розташовувати в природному порядку зростання двійкових чисел , а десятковий еквівалент даного числа вважати номером відповідного двійкового набору.Приклад. Нехай =3. Розглянемо довільну функцію трьох змінних Як видно з таблиці, число різних наборів аргументів дорівнює , функції відповідає двійковий вектор значень довжини . Звідки випливає ще один спосіб задання булевої функції:2. Векторний спосіб – коли булева функція подається у вигляді вектора своїх значень , , . Координата є значенням функції на наборі значень змінних з номером , .Приклад. Булева функція з попереднього прикладу може бути подана у вигляді вектора: .Розглядаючи двійковий вектор як двійкове ціле число з розрядами, будемо вважати десятковий еквівалент цього двійкового числа номером (індексом) функції, яка задана даною таблицею. В нашому випадку задана функція .Позначимо через множину всіх двійкових наборів, на яких булева функція набуває значення 1, тобто . Будемо називати двійковий набір, на якому булева функція набуває значення 1, одиничним вектором. Тоді множина називається множиною одиничних векторів або просто одиничною множиною функції . Звідси випливає ще один спосіб задання булевої функції: 3. Геометричний спосіб – коли булева функція задається своєю одиничною множиною . При геометричному способі задання область визначення булевої функції інтерпретується як координати вершин -вимірного одиничного куба. Суто геометрична інтерпретація ефективна для невеликого числа змінних. При область визначення булевої функції однієї змінної – множина вершин 1-вимірного одиничного куба, тобто одиничного відрізку.  При область визначення булевої функції двох змінних – множина вершин 2-вимірного одиничного куба, тобто одиничного квадрата.  При область визначення булевої функції трьох змінних – множина вершин 3-вимірного одиничного куба.  Щоб задати булеву функцію, вказують не самі одиничні вектори, а їх номери. Таким чином, булева функція задається переліком десяткових еквівалентів наборів, на яких вона дорівнює одиниці. Приклад. Одинична множина булевої функції з попереднього прикладу – вказані номери одиничних векторів, тобто функція задається переліком десяткових еквівалентів наборів, на яких вона дорівнює одиниці.  На виділених векторах функція набуває значення 1. Існують ще два способи задання булевих функцій – формулами і схемами з функціональних елементів, з якими познайомимося пізніше. 3. Число булевих функцій аргументів Позначимо через множину всіх можливих булевих функцій від змінних, включаючи функції з фіктивними змінними. Визначимо потужність множини . Якщо зафіксувати один з аргументів булевої функції , надаючи йому конкретне стале значення з множини , то отримаємо булеву функцію від –го аргументу. Так, фіксуючи , , можна отримати дві нові булеві функції від –го аргументу: і , які будуть задаватися таблицями, що відрізняються тільки значеннями правих стовпців. Якщо зафіксувати всі змінних , то різні таблиці, що задають булеві функції, будуть відрізнятися тільки значеннями правого стовпця. Тому справедлива теоремаТеорема (про число булевих функцій від аргументів). Число різних булевих функцій від аргументів дорівнює : .Доведення. Для задання булевої функції від аргументів треба вказати її значення для кожного з різних наборів значень її аргументів, тобто заповнити правий стовпець таблиці істинності функції. Оскільки порядок рядків в таблиці однаковий, то різних булевих функцій від аргументів існує стільки, скільки можна скласти різних правих стовпців. А оскільки кожний стовпець являє собою двійковий набір довжини , то кількість таких наборів за лемою дорівнює .□Відзначимо, що із зростанням число різних булевих функцій від аргументів швидко зростає: при їх 4, при їх 16, при – 256, при – 655536 і т.д. Із зростанням числа аргументів, таблиця, що задає булеву функцію, дуже ускладнюється; вже при таблиця стає величезною (1024 рядки), а при – практично неосяжною. Тому при великих табличний спосіб завдання булевих функцій незастосовний. |