КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Объединение 3-х и более алгоритмов
Задача. Автомат должен выполнять три алгоритма U 1, U 2 и U 3 в зависимости от значений набора логических условий r1, r2. Получить минимизированный объединенный алгоритм U об, в котором отсутствуют повторяющиеся операторы. Алгоритм решения. 1. Составить граф-схему и логическую схему каждого алгоритма. 2. Оценить эффективность минимизации объединенного алгоритма по количеству общих (одинаковых) операторов и логических переменных исходных алгоритмов. Если это количество меньше 2, то минимизация неэффективна, U об = r11r22 U 1w3 ¯1 U 2w3¯2 U 3¯3, иначе перейти к п. 3. 3. Составить матричную схему каждого алгоритма. 4. Построить объединенную МСА, каждый элемент которой
Определяющие функции вычисляются по формуле: Здесь Ri - определяющие конъюнкции для всех объединяемых МСА. Оператор Аi входит только в ЛСА U i, поэтому есть выбор R/0, который позволяет минимизировать систему формул перехода и объединенную ЛСА. Практика объединения алгоритмов показывает, что МСА с наибольшим числом совпадающих элементов желательно приписывать определяющие конъюнкции с соседним кодированием. Совпадающие элементы: - элементы, состоящие из одинаковых логических функций; - элементы строки оператора Аi, если он отсутствует в другой МСА.
4.1. Построить неориентированный граф, вершины которого помечены обозначениями алгоритмов, а ребра - числом совпадающих элементов. 4.2. Закодировать определяющие конъюнкции алгоритмов набором логических переменных r1r2, используя соседнее кодирование для пар МСА с наибольшим числом совпадающих элементов. 4.3. Построить набор определяющих функций для каждого оператора каждого алгоритма. 4.4. Построить объединенную МСА.
5. Составить систему формул перехода, провести ее минимизацию и упрощение. 6. По системе схемных формул перехода составить объединенную ЛСА. 7. Проверить выполнение каждого алгоритма в объединенной ЛСА, подставляя соответствующие значения r1, r2. Если алгоритм имеет большое количество элементарных выражений и безусловных переходов, то проверку рекомендуется проводить по объединенной ГСА.
Пример. U 1 – вывести максимум массива из 10 элементов. U 2 – вывести минимум массива из 10 элементов. U 3 – вывести номер первого элемента массива, равного 4.
1) U 1 =A0A11¯2p1111A21¯11A3p22A41Aк U 2 =A0A12¯2p1212A22¯12A3p22A42Aк U 3 =A0A13¯2p1313A23ω3¯13A3p22¯3Aк
2) Общие операторы и логические переменные – A0 , A3 , p2 , Aк . Минимизация должна быть эффективна.
3)
4) Определяющие конъюнкции и функции
4.1) Граф с числами совпадающих элементов U 1- U 2: строки А11+А21+А12+А22+А41+А42 = 2+1+2+1+1+1 = 8. U 1- U 3: строки А11+А21+А41+А13+А23 = 2+1+1+2+1 = 7. U 2- U 3: строки А12+А22+А42+А13+А23 = 2+1+1+2+1 = 7. Для большей минимизации введена пустая МСА U ø , число совпадающих с ней элементов равно числу элементов всей матрицы.
4.2) Определяющие конъюнкции
Наибольшее число совпадающих элементов у пар матриц U 1- U 2 , U 1- U ø , U 2- U ø . Закодируем определяющие конъюнкции для U 1 , U 2 , U ø соседними кодами: R1 = r1r2, R2 = r1!r2, R ø =!r1r2, R3 =!r1!r2.
4.3) Определяющие функции
Определяющие функции операторов А0 и А3 первого алгоритма (присутствуют во всех алгоритмах кроме пустого): . Определяющие функции остальных операторов первого алгоритма (присутствуют только в нем): . Аналогично для остальных алгоритмов: ; ; .
4.4) Объединенная недоопределенная МСА
Доопределяем МСА, сокращая число и сохраняя полноту логических условий.
5) Скобочная система формул перехода S2
A0 → r1r2A11 V r1!r2A12 V!r1A13 → r1(r2A11 V!r2A12) V!r1A13 A11 → p11A21 V!p11A3 A12 → p12A22 V!p12A3 A13 → p13A23 V!p13A3 A21 → A3 A22 → A3 A23 → Aк A3 →!p2r1r2(p11A21 V!p11A3) V!p2r1!r2(p12A22 V!p12A3) V!p2!r1(p13A23 V!p13A3) V p2(r1(r2A41 V!r2A42) V!r1Aк) → p2(r1(r2A41 V!r2A42) V!r1Aк) V!p2(r1(r2(p11A21 V!p11A3) V!r2(p12A22 V!p12A3)) V!r1(p13A23 V!p13A3)) A41 → Aк A42 → Aк
Схемная система формул перехода S3
A0 → r11r22A11 * ¯2A12 * ¯1A13 A11 → p1111A21 * ¯11A3 A12 → p1212A22 * ¯12A3 A13 → p1313A23 * ¯13A3 A21 → A3 A22 → A3 A23 → Aк A3 → p23 r14 r25A41 * ¯5A42 * ¯4Aк * ¯3 r16 r27 p1111A21 * ¯11A3 * ¯7 p1212A22 * ¯12A3 * ¯6 p1313A23 * ¯13A3 A41 → Aк A42 → Aк
Преобразованная схемная система формул перехода S3'
A0 → r11 r22 A11 * ¯2A12 * ¯1A13 A11 → ¯3 r16 r27 p118A21 A12 → ¯7 p128A22 A13 → ¯6 p138A23 A21 → ω8 A22 → ¯8A3 A23 → ω9 A3 → p23 r19 r25A41 * ¯5A42 A41 → ω9 A42 → ¯9Aк
6) Объединенная ЛСА U об = A0 r11 r22A11¯3 r16 r27 p118A21ω8¯2A12¯7 p128A22¯8A3ω10¯1A13¯6 p13 8A23ω9 ¯10 p23 r19 r25A41ω9¯5A42¯9Aк
7) Проверка:
r1=1, r2=1 U1 = A0A11¯3p118A21¯8A3p23A41Aк r1=1, r2=0 U2 = A0A12¯3p128A22¯8A3p23A42Aк r1=0, r2=0 U3 = A0A13¯3p138A23ω9¯8A3p23¯9Aк
При подстановке соответствующих значений r все 3 алгоритма выполняются правильно, следовательно объединенная ЛСА составлена верно. В объединенной ЛСА 21 элементарное выражение, а в необъединенной – 25. Минимизация эффективна.
Задача для подготовки. Объединить 3 алгоритма: U 1 – вывести максимум массива из 10 элементов. U 2 – вывести номер первого элемента массива, большего 5. U 3 – упорядочить массив в порядке возрастания и вывести последний элемент. Первый оператор А0 – инициализация массива и переменных. Последний оператор Ак – вывод искомого значения на экран.
Дата добавления: 2015-05-26; Просмотров: 730; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |