- •10) Для представления логической функции, заданной таблицей истинности в сднф необходимо выполнить следующие шаги.
- •11) Функцией алгебры Буля называется функция n переменных f(x1 , x2, …,xn), принимающая значения 0 или 1, ее аргументы также принимают два значения 0 или 1:
- •13) Аналитическое представление булевых функций
- •1. Связь переменной с самой переменной и константой:
- •2. Связь операции Шеффера с конъюнкцией: Выражение конъюнкции через функцию Шеффера:
- •3. Связь операции Шеффера с дизъюнкцией: Выражение дизъюнкции через функцию Шеффера:
- •1. Связь переменной с самой переменной и константой:
- •4. Правила склеивания:
- •20) Законы алгебры Жегалкина:
- •27) Алгоритмические структуры (типы алгоритмов)
27) Алгоритмические структуры (типы алгоритмов)
Линейные алгоритмы
Следование (линейная структура) – это такая структура алгоритма, в которой нет логических условий и все действия выстроены последовательно друг за другом в единую цепь (рис. а). В качестве примера приведем алгоритм вычисления площади круга (рис. б).
-
а)
б)
Алгоритм ветвления (разветвляющийся алгоритм) – это такая структура, в которой осуществляется выбор варианта дальнейших действий в зависимости от некоторых условий.
Варианты алгоритмов ветвления
если – то (if – then) – ветвление в неполной форме;
|
|
если - то – иначе (if – then – else) – ветвление в полной форме; |
|
выбор |
|
- выбор – иначе.
|
|
Циклическая структура.
Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. Число повторений определяется параметром цикла – переменной, принимающей новое значение при каждом вхождении в цикл.
Телом цикла называется последовательность повторяемых команд, которая может быть и пустой (редко встречаемый случай).
Основные виды циклов:
а) Цикл с предусловием (while – англ. "пока") – цикл, в котором условие находится перед телом цикла, а сам цикл выполняется до тех пор, пока условие не станет ложным. В качестве условия задаётся логическое выражение.
Общий вид: While <условие > do <повторяемая команда> |
|
Особенностью цикла с предусловием является то, что он может не выполниться ни разу – это произойдёт, если указанное условие изначально будет ложным. При этом, цикл может и стать "вечным", если условие никогда не станет ложным. Поэтому следует следить за тем, чтобы всегда присутствовали условия для завершения работы цикла.
б) Цикл с постусловием используется для организации циклического выполнения совокупности операторов, до тех пор, пока не выполнится некоторое условие. Общий вид:
repeat <повторяемая команда> until <условие выхода из цикла>.
|
В качестве условия задаётся условие выхода из цикла, в то время как в цикле while задаётся условие продолжения цикла. Цикл с постусловием, в отличие от цикла с предусловием, всегда выполняется хотя бы один раз! Но, как и цикл while, при неверно написанном условии цикл станет "вечным". |
б) Цикл с заданным числом повторений обеспечивает циклическое повторение некоторого оператора – тела цикла заданное число раз.
Повторение цикла определяется некоторой управляющей переменной (счетчиком), которая увеличивается или уменьшается на единицу при каждом выполнении тела цикла. Предписывает выполнять тело цикла для всех значений управляющей переменной в заданном диапазоне. Повторение завершается, когда управляющая переменная достигает заданного значения.
Общий вид: for <переменная> := <начальное значение > to <конечное ее значение> do < повторяемая команда>.
|
|
Циклы бывают итерационными. Их особенность в том, что число повторений операторов цикла заранее неизвестно. Для организации такого а используют оператор пока. Выход из итерационного цикла осуществляется в результате выполнения условия. На каждом шаге вычислений происходит последовательное приближение и проверка условия достижения искомого результата.
Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, то есть организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенного цикла. Глубина вложения циклов может быть различной.
28 Вычисли́тельная сло́жность — понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных. Раздел, изучающий вычислительную сложность, называется теорией сложности вычислений. Объём работы обычно измеряется абстрактными понятиями времени и пространства, называемыми вычислительными ресурсами. Время определяется количеством элементарных шагов, необходимых для решения задачи, тогда как пространство определяется объёмом памяти или места на носителе данных. Таким образом, в этой области предпринимается попытка ответить на центральный вопрос разработки алгоритмов: «как изменится время исполнения и объём занятой памяти в зависимости от размера входа?». Здесь под размером входа понимается длина описания данных задачи в битах (например, в задаче коммивояжёра длина входа почти пропорциональна количеству городов и дорог между ними), а под размером выхода — длина описания решения задачи (наилучшего маршрута в задаче коммивояжера).
В частности, теория сложности вычислений определяет NP-полные задачи, которые недетерминированная машина Тьюринга может решить за полиномиальное время, тогда как для детерминированной машины Тьюринга полиномиальный алгоритм неизвестен. Обычно это сложные задачи оптимизации, например, задача коммивояжёра.
С теоретической информатикой тесно связаны такие области как алгоритмический анализ и теория вычислимости. Связующим звеном между теоретической информатикой и алгоритмическим анализом является тот факт, что их формирование посвящено анализу необходимого количества ресурсов определённых алгоритмов решения задач, тогда как более общим вопросом является возможность использования алгоритмов для подобных задач. Конкретизируясь, попытаемся классифицировать проблемы, которые могут или не могут быть решены при помощи ограниченных ресурсов. Сильное ограничение доступных ресурсов отличает теорию вычислительной сложности от вычислительной теории, последняя отвечает на вопрос какие задачи, в принципе, могут быть решены алгоритмически.
29 В состав машины Тьюринга входит неограниченная в обе стороны лента (возможны машины Тьюринга, которые имеют несколько бесконечных лент), разделённая на ячейки, и управляющее устройство (также называется головкой записи-чтения (ГЗЧ)), способное находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано.
Управляющее устройство может перемещаться влево и вправо по ленте, читать и записывать в ячейки символы некоторого конечного алфавита. Выделяется особый пустой символ, заполняющий все клетки ленты, кроме тех из них (конечного числа), на которых записаны входные данные.
Управляющее устройство работает согласно правилам перехода, которые представляют алгоритм, реализуемый данной машиной Тьюринга. Каждое правило перехода предписывает машине, в зависимости от текущего состояния и наблюдаемого в текущей клетке символа, записать в эту клетку новый символ, перейти в новое состояние и переместиться на одну клетку влево или вправо. Некоторые состояния машины Тьюринга могут быть помечены как терминальные, и переход в любое из них означает конец работы, остановку алгоритма.
Машина Тьюринга называется детерминированной, если каждой комбинации состояния и ленточного символа в таблице соответствует не более одного правила. Если существует пара «ленточный символ — состояние», для которой существует 2 и более команд, такая машина Тьюринга называется недетерминированной.
Описание машины Тьюринга[править | править вики-текст]
Конкретная машина Тьюринга задаётся перечислением элементов множества букв алфавита A, множества состояний Q и набором правил, по которым работает машина. Они имеют вид: qiaj→qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буква aj, то головка переходит в состояние qi1, в ячейку вместо aj записывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку влево (L), на ячейку вправо (R), остаться на месте (N)). Для каждой возможной конфигурации <qi, aj> имеется ровно одно правило (для недетерминированной машины Тьюринга может быть большее количество правил). Правил нет только для заключительного состояния, попав в которое, машина останавливается. Кроме того, необходимо указать конечное и начальное состояния, начальную конфигурацию на ленте и расположение головки машины.
