
Логічні основи комп’ютерів
Алгебра логіки
В основі всіх дій, які виконує комп’ютер, лежать логічні виводи, що ґрунтуються на бульовій логіці, про яку йтиметься далі. З появою транзисторів почалося друге покоління персональних комп’ютерів, потім на основі цього розвивалися наступні покоління.
Нині широко використовується транзисторна логіка для побудови бульової логіки в обчислювальній техніці. Будь-яка інтегральна схема будується із застосуванням тригерів і логічних елементів, на основі яких можна побудувати схему будь-якої складності.
Що таке логіка і як вона причетна до побудови та роботи комп’ютерів? Логіка – це наука про закони, форми та способи мислення; вчення про способи міркувань і доведень.
Основою сучасної логіки є вчення, створені ще давньогрецькими мислителями, хоча перші вчення про форми і способи мислення виникли у Давньому Китаї й Давній Індії. Основоположником формальної логіки вважають Аристотеля (384 – 322 рр. до н. е.), який уперше відокремив логічні форми мислення від його змісту. Логіка задавала загальні правила, за якими людина мала мислити, робити висновки і приходити до істини.
Для запису тих чи інших логічних виразів використовується спеціальна мова. Її основоположником є великий німецький математик Готфрід Вільгем Лейбніц (1646 – 1716). У нього виникла думка створити нову науку – математичну логіку, в якій в якій логічні поняття позначені математичними знаками. Він зробив спробу побудувати універсальну мову, за допомогою якої суперечки між людьми можна було б розв’язувати шляхом обчислень.
Тільки через 200 років англійський математик Джордж Буль (1815 – 1864) частково реалізував ідеї Г.В. Лейбніца. Він заклав основи так званої математичної, або символічної логіки. Її суть полягає у тому, що для знаходження істинного значення складних виразів (висловлень) природної мови можна застосовувати математичні методи, не вникаючи у зміст самого висловлення. Дж. Буль створив для логічних обґрунтувань і міркувань своєрідну алгебру (алгебраїчну структуру), в якій логічні висловлення позначалися особливими символами подібно до того, як в алгебрі числа позначаються літерами. Виявилося, що, оперуючи цими символами й логічними зв’язками, можна виконувати логічні міркування шляхом звичайних обчислень.
Ця своєрідна система позначень і правил, яка, на відміну від звичайної алгебри, оперує не числами, а висловленнями, й називається алгеброю Буля, або бульовою алгеброю.
Важливість ознайомлення з цією алгеброю полягає в тому, що вона є математичною основою побудови всіх логічних схем комп’ютерів, які обробляють інформацію у двійковій системі числення.
Щоб задати алгебру, необхідно задати певну множину елементів (змінних і констант) і визначену на ній певну множину операцій. Крім цього, потрібно мати алфавіт алгебри, правила запису й перетворення формул.
В алгебрі множиною констант і змінних є множина дійсних чисел, а множина операцій включає операції додавання, віднімання, множення, ділення, піднесення до степеня і добування кореня. Результати операцій визначають такі функції: додавання – суму, віднімання – різницю, множення – добуток та ін.. Набір операцій тут надлишковий. Наприклад, піднесення до степеня можна замінити множенням, множення – додаванням.
Розглянемо детальніше головні компоненти, необхідні для завдання бульової алгебри:
множина логічних об’єктів (логічних виразів);
три основні операції над логічними об’єктами;
аксіоми й теореми, що регламентують ці операції.
Множина логічних об’єктів А (логічних висловлювань). Логічне висловлювання – це будь-яке розповідне речення, стосовно якого можна однозначно сказати, істинне воно чи хибне і таке, що не розглядається залежно від його змісту. Наведемо приклади логічних висловлювань: «сніг холодний». Це речення є висловлюванням, і при тому істинним. «Сніг теплий» – висловлювання, але хибне. «Річка рухається й не рухається» не є висловлюванням, адже з цього речення не можна зрозуміти, істинне воно чи хибне. «Котра година?» – це не висловлювання, а запитання.
Три основні операції над логічними об’єктами. Головною складовою цифрової техніки є три логічні операції, які лежать в основі всіх рішень комп’ютера: І, АБО, НЕ. Розглянемо кожну з них.
Кон’юнкція – бінарна операція, яку називають операцією логічного множення. Визначає поєднання двох логічних виразів (висловлювань) за допомогою сполучника І. Позначається *, ˄, &, «І», and. Висловлення А ˄ В істинне тоді й тільки тоді, коли обидва висловлювання А та В істинні.
Диз’юнкція – бінарна операція, яку називають операцією логічного додавання. Визначає логічне поєднання двох логічних виразів (висловлювань) за допомогою сполучника АБО, Позначається ˅, +, «АБО», or. Висловлювання А ˅ В хибне тоді й тільки тоді, коли обидва висловлювання А та В хибні.
Заперечення
(інверсія)
– унарна операція. Визначає заперечення
виразу (висловлювання). Позначається
⌐, «НЕ», not.
Висловлювання А істинне, коли
хибне, і хибне, коли А
істинне.
В алгебрі логіки використовуються дві додаткові операції:
імплікація (логічне слідування). Ця операція пов’язує два прості логічні вирази, з яких перший є умовою, а другий – наслідком з цієї умови. Операція виражається зв’язками «якщо …, то», «із…слідує» і позначається знаком →. Результатом імплікації А→В є хибність тоді й тільки тоді, коли А істинний, а наслідок В – хибний;
еквівалентність (рівнозначність, подвійна імплікація). Визначає результат порівняння двох простих логічних виразів А і В, позначається значками ↔ або ≈. Операція виражається зв’язками «тоді й тільки тоді», «необхідно й достатньо», «рівносильно». Результат – новий логічний вираз, який є істинним тоді й тільки тоді, коли обидва вихідні вирази одночасно істинні або хибні.
Ці дві операції можна виразити через три основні логічні операції: кон’юнкцію, диз’юнкцію, заперечення.
Імплікація
виражається через диз’юнкцію й
заперечення:
.
Еквівалентність
– через заперечення, диз’юнкцію й
кон’юнкцію:
.
Для графічної ілюстрації логічних операцій скористаємося діаграмами Ейлера – Вена (рис. 2.4).
Порядок виконання логічних операцій:
інверсія;
кон’юнкція;
диз’юнкція;
імплікація;
еквівалентність.
Для
зміни зазначеного порядку виконання
логічних операцій використовують круглі
дужки. Наприклад:
.
Логічні
операції
Кон’юнкція
Диз’юнкція
Заперечення
Кон’юнкції відповідає
операція перетину множин. Множина,
отримана у результаті множення множин
А
і В,
складається з елементів, які належать
одночасно двом множинам
А
А
А
В
В
Логічному запереченню
відповідає операція доповнення до
універсальної множини. Результатом є
множина, що доповнює множину А
до універсальної множини
Диз’юнкції
відповідає операція об’єднання множин.
Множина, одержана у результаті додавання
множин А
і В,
складається з елементів, що належать
або множині А,
або множині В
Рис. 2.4. Діаграма Ейлера – Вена
Аксіоми й теореми, що регламентують виконання основних операцій.
Закон асоціативності (незалежність від порідку виконання однотипних дій):
(А ˅ В) ˅ С=А ˅ (В ˅ С);
(А ˄ В) ˄ С=А ˄ (В ˄ С).
Закон комутативності (незалежність від перестановки місць:
А ˅ В = В ˅ А;
А ˄ В = В ˄ А.
Закон ідемпотентності (відсутність степенів і коефіцієнтів):
А ˅ А = А;
А ˅ А = А.
Закон дистрибутивності (розподілу):
А ˅ (В ˄ С) = (А ˅ В) ˄ (А ˅ С);
А ˄ (В ˅ С) = (А ˄ В) ˅ (А ˄ С).
Закон де Моргана:
з
множини логічних висловлювань
А виконується;
(заперечення
варіантів);
(заперечення
одночасної істинності);
(інволютивність
заперечення; інволюція – це перетворення,
що є зворотним самому собі).
Проведемо порівняння набору базисних операцій для деяких алгебр (табл. 2.1).
Таблиця 2.1