Схемы и линейные программы.

Указанное выше свойство характерно и для программ, в которых один раз вычисленное выражение можно использовать неоднократно. Рассмотрим один из простейших классов программ – линейные (неветвящиеся) программы. Такие программы представляют последовательности присваиваний вида: , где – переменные, – имя -местной базисной функции.

В случае нашего базиса линейная программа состоит из присваиваний вида:

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

Определение 11.9. Скажем, что программа с входными переменными вычисляет в выходной переменной функцию , если для любого набора значений входов после завершения работы .

Между схемами и линейными программами имеется тесная связь.

Теорема:

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

2. По каждой линейной программе с входными переменными , вычисляющей в выходной переменной некоторую функцию можно эффективно построить логическую схему со входами , в которой имеется вершина такая, что .

Доказательство:

Пусть – схема со входами и функциональными элементами . Построим по ней линейную программу с входными переменными следующим образом: упорядочим все входные и функциональные вершины по глубине (вершины одной глубины в любом порядке) – . Программа будет последовательностью присваиваний.

Пусть вершина помечена и в неё входит ребро из . Тогда в качестве -й команды поместим в присваивание .

Пусть вершина помечена некоторым символом из множества и в неё входят ребра из и . Тогда в качестве -й команды поместим в присваивание или . Упорядочение вершин по глубине гарантирует, что и . Поэтому при вычислении значения аргументов уже получены и индукцией по глубине легко показать, что для каждого программа вычисляет в переменной функцию .

Пример:

Применим конструкцию теоремы к схеме , представленной на рис.1. Её вершины можно упорядочить по глубине так: . Порождая команды по описанным выше правилам, полагаем следующую линейную программу :


<== предыдущая лекция | следующая лекция ==>
Отношения. Свойства отношений. | Булева алгебра. Основные операции булевой алгебры.




Дата добавления: 2015-12-16; просмотров: 605;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.