Задания и методические указания к их выполнению
1. Из таблицы в соответствии с номером варианта N (номер по списку группы) выбрать выражение исходной ФАЛ:
N | Выражение | N | Выражение |
2. Определить тип и количество логических элементов, необходимых для реализации исходной ФАЛ:
Тип | Реализуемая операция | Количество ЛЭ |
…………………………………………………………
Всего |
Например, реализация ФАЛ у = требует логические элементы:
Тип | Реализуемая операция | Количество ЛЭ |
НЕ | Инверсия | |
ИЛИ | Дизъюнкция | |
И-НЕ | Штрих Шеффера | |
ИЛИ-НЕ | Стрелка Пирса | |
Всего |
3. Упростить исходное выражение до двух логических операций.
Чтобы получить компактную запись сложного выражения, прежде всего, целесообразно заменить в нем такие элементарные ФАЛ, как стрелка Пирса, штрих Шеффера, исключающее ИЛИ и эквивалентность их сложной формой записи. При этом необходимо помнить, что порядок вычисления логического выражения определяется тремя основными факторами:
– скобки. Выражения в скобках всегда вычисляются первыми;
– приоритет операций. По убыванию приоритета логические операции располагаются в следующем порядке:
§ инверсия отдельного аргумента,
§ штрих Шеффера, стрелка Пирса, эквивалентность,
§ конъюнкция,
§ операции типа дизъюнкции – собственно дизъюнкция и исключающее ИЛИ (неравнозначность);
– когда порядок вычисления выражения не задан скобками, а уровень приоритета операций одинаков, выражение вычисляется слева направо.
Например, выражение следует переписать как .
Затем в полученном выражении с помощью законов и тождеств алгебры логики, а также сложной формой записи элементарных ФАЛ добиваются наименьшего числа операций. При этом в случае использования закона двойственности знак общей инверсии преобразуется в скобки.
Так, для приведенного примера:
4. С помощью системы MATLAB проверить эквивалентность исходной и упрощенной ФАЛ.
Различные ФАЛ от одного и того же количества аргументов эквивалентны, если на всем множестве входных двоичных наборов их значения совпадают.
В системе MATLAB значения ФАЛ можно получить следующим образом. В командном окне (Command Window) системы MATLAB построчно в виде векторов-строк вводятся значения аргументов ФАЛ в соответствии с последовательностью входных двоичных наборов (табл. 1). При этом соседние элементы вектора-строки разделяются пробелом, а командная строка завершается символом «;», который означает запрет вывода на экран результата выполнения данной командной строки после перехода на следующую строку путем нажатия клавиши Enter.
После этого в очередной командной строке вводится ФАЛ, логическое выражение которой записывается с помощью стандартных для языка MATLAB операторов или функций (табл. 2). При этом в конце командной строки символ «;» не ставится, что после нажатия клавиши Enter обусловливает вывод на экран результатов вычислений в виде вектора-строки с указанием имени функции (см. табл. 1).
Пример записи ФАЛ с помощью операторов языка MATLAB приведен в табл. 1. Конечно, ФАЛ можно записать и с помощью только функций MATLAB, например
Y1=or(not(and(A,or(B,not(C)))),not(or(not(B),C))),
Y2=not(and(A,not(xor(B,C)))).
Но тогда выражения становятся громоздкими, что повышает вероятность ошибки как при записи, так и вводе в рабочее поле того или иного окна MATLAB.
5. Определить тип и количество логических элементов, необходимых для реализации полученной ФАЛ. На основании сравнения с таблицей п.2 работы сделать вывод относительно целесообразности упрощения ФАЛ.