Математическая логика и теория алгоритмов.

2.1. ЛОГИЧЕСКИЕ ОПЕРАЦИИ. ТАБЛИЦЫ ИСТИННОСТИ.

Высказывание – повествовательное предложение, о котором можно сказать истинно оно или ложно (На улице идёт дождь – высказывание, какая хорошая погода – не высказывание).

Высказывания А и В равносильны тогда и только тогда, когда истинностные значения А и В совпадают ( математическая логика и теория алгоритмов. - student2.ru ).

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

Логические операции над высказываниями.

1. Отрицание. математическая логика и теория алгоритмов. - student2.ru . Не а. Унарная операция.

a математическая логика и теория алгоритмов. - student2.ru

2. Конъюнкция. математическая логика и теория алгоритмов. - student2.ru . a И b.

a b математическая логика и теория алгоритмов. - student2.ru

3. Дизъюнкция. математическая логика и теория алгоритмов. - student2.ru . a ИЛИ b.

a b математическая логика и теория алгоритмов. - student2.ru

4. Импликация. математическая логика и теория алгоритмов. - student2.ru . ЕСЛИ a, ТО b. a – посылка, b – заключение.

a b математическая логика и теория алгоритмов. - student2.ru

5. Эквиваленция. математическая логика и теория алгоритмов. - student2.ru . ТОГДА И ТОЛЬКО ТОГДА

a b математическая логика и теория алгоритмов. - student2.ru

Если х делится на 4, то x делится на 2.

А: х делится на 4.

B: х делится на 2.

математическая логика и теория алгоритмов. - student2.ru

Формулы.

1. Снятие импликации математическая логика и теория алгоритмов. - student2.ru

2. Снятие эквиваленции математическая логика и теория алгоритмов. - student2.ru

3. Переместительный (коммуникативный) закон математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru

4. Сочетательный (ассоциативный) закон математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru

5. Распределительный (дистрибутивный) закон математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru .

6. Законы Де Моргана математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru

7. Законы поглощения математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru .

8. Законы идемпотентности математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru .

9. Законы нуля и единицы математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru

10. Закон исключающего третьего математическая логика и теория алгоритмов. - student2.ru

11. Закон противоречия математическая логика и теория алгоритмов. - student2.ru

12.Закон двойного отрицания математическая логика и теория алгоритмов. - student2.ru

2.2. ЛОГИКА ВЫСКАЗЫВАНИ И ПРЕДИКАТОВ.

Логическое высказывание – связанное повествовательное предложение, о котором можно сказать истинно оно или ложно (На улице идёт дождь – высказывание, какая хорошая погода – не высказывание). В логике высказываний нас интересует не содержание, а истинностное значение высказываний (0 – Ложь, 1 – Истина).

Высказывания А и В равносильны тогда и только тогда, когда истинностные значения А и В совпадают ( математическая логика и теория алгоритмов. - student2.ru ).

Основные операции над логическими высказываниями: (см. вопрос 2.1).

Логика предикатов – логическая система, средствами которой можно исследовать структуру высказываний.

Предикат – свойство объекта (отношения между объектами). Быть чётным, быть простым, делиться, быть больше.

математическая логика и теория алгоритмов. - student2.ru – унарный.

математическая логика и теория алгоритмов. - student2.ru – бинарный.

математическая логика и теория алгоритмов. - student2.ru – трёхместный.

Предикат – функция, высказывательные переменные которой принимают значения из некоторого множества математическая логика и теория алгоритмов. - student2.ru , а сама функция принимает значения {0; 1}.

математическая логика и теория алгоритмов. - student2.ru

Для задания предиката должно быть задано:

1. Область определения математическая логика и теория алгоритмов. - student2.ru , состоящая из множества предметных переменных.

2. Множество математическая логика и теория алгоритмов. - student2.ru – область значений предиката.

3. Правило, по которому каждому элементу из множества математическая логика и теория алгоритмов. - student2.ru ставится в соответствие элемент из множества математическая логика и теория алгоритмов. - student2.ru .

Способы задания предиката.

1. Графический.

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

2. Табличный

 
математическая логика и теория алгоритмов. - student2.ru

3. Словесный

Предикат математическая логика и теория алгоритмов. - student2.ru выполняется при математическая логика и теория алгоритмов. - student2.ru и не выполняется во всех остальных точках x области определения.

4. Формульный (аналитический).

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

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

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

Кванторы.

1. Квантор общности. математическая логика и теория алгоритмов. - student2.ru . Пусть математическая логика и теория алгоритмов. - student2.ru – некоторый предикат, под выражением математическая логика и теория алгоритмов. - student2.ru будем подразумевать высказывание, истинное когда математическая логика и теория алгоритмов. - student2.ru истина для любого математическая логика и теория алгоритмов. - student2.ru из множества математическая логика и теория алгоритмов. - student2.ru и ложное в противоположном случае.

2. Квантор существования. математическая логика и теория алгоритмов. - student2.ru . Пусть математическая логика и теория алгоритмов. - student2.ru – некоторый предикат, под выражением математическая логика и теория алгоритмов. - student2.ru будем подразумевать высказывание, истинное когда существует элемент из множества математическая логика и теория алгоритмов. - student2.ru , для которого математическая логика и теория алгоритмов. - student2.ru истинно и ложное в противоположном случае. математическая логика и теория алгоритмов. - student2.ru . Существует такое x, которое кратно 2 и кратно 3.

Операции, уменьшающие местность предиката.

1. Фиксация значений переменной.

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

2. Операция связывания квантором

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

математическая логика и теория алгоритмов. - student2.ru

Обобщение логических операций с помощью квантора.

Пусть математическая логика и теория алгоритмов. - student2.ru – одноместный предикат, который определён на конечном множестве математическая логика и теория алгоритмов. - student2.ru . математическая логика и теория алгоритмов. - student2.ru . Квантор общности определяет операцию конъюнкция.

Квантор существования обобщает операцию дизъюнкция.

Основные равносильности алгебры предикатов, содержащие кванторы.

1. Законы де Моргана. математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru (перенос отрицания).

2. Перестановка одноимённых кванторов (коммунитативные законы). математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru .

3. Дистрибутивные законы. математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru

4. Законы ограничения действия кванторов математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru , математическая логика и теория алгоритмов. - student2.ru .

Все законы, которые работают в алгебре высказываний, переносятся в алгебру предикатов.

2.3. ИНТУИТИВНОЕ И ФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА.

Алгоритм – эффективная процедура, однозначно приводящая к результату.

Основные требования к алгоритму:

· Каждый алгоритм должен иметь данные: входные, выходные, промежуточные

· Данные для своего размещения требуют памяти внутренней и внешней

· Алгоритм состоит из отдельных элементарных шагов, количество которых конечно

· Последовательность шагов алгоритма детерминирована, т.е. после каждого шага либо указывается какой шаг делать дальше либо дается команда остановки

· Результативность – остановка после конечного числа шагов, с указанием того, что считать результатом

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

Основные типы алгоритмических моделей:

1. Рекурсивные функции – вычисление и числовые функции

2. Машина Тьюринга – в основе лежит представление об алгоритме как некотором детерминированном устройстве, способном выполнить в каждый отдельный момент времени лишь примитивные операции

3. Каноническая система Поста и нормальные алгоритмы Маркова – происходит преобразование слов в произвольных алфавитах, в которых элементарные операции – это подстановки, т.е. замены части слова другим словом.

Пример: Машина Тьюринга

Машина Тьюринга состоит из 3-х частей:

1) Устройство управления, которое может находиться в одном из следующих состояний: Q = {q1, q2, …, qn}.

2) Лента, которая разбита на ячейки, в каждой из которых может быть записан один из символов конечного алфавита A = {a1, a2, …, an}.

3) Устройство обращения к ленте, которая представляет из себя считывающую и пишущую головку. В каждый момент времени она обозревает ячейку ленты и в зависимости от символа на ленте и состоянию устройств управления, записывает в ячейку символ, который может быть пустым, т.е. стирает содержимое, сдвигается на ячейку влево или вправо, или остается на месте. После этого устройство управления переходит в новое состояние или остается в старом.

Среди состояний устройства управлений выделяют начальное – q1 (оно существует перед началом работы) и выделяется заключительное состояние – qz, после этого состояния машина Тьюринга останавливается.

Три способа описания:

1. Система команд

2. Таблица переходов: строки таблицы – состояния, столбцы – входные символы

3.Блок – схемы (диаграмма переходов)

2.4. ТЕОРИЯ СЛОЖНОСТИ В ТЕОРИИ АЛГОРИТМОВ.

В информатике, теория сложности вычислений является разделом теории вычислений, изучающим стоимость работы. Стоимость обычно измеряется абстрактными понятиями времени и пространства, называемыми вычислительными ресурсами. Время определяется количеством элементарных шагов, необходимых для решения проблемы, тогда как пространство определяется объёмом памяти или места на носителе данных.

Количество элементарных операций, затраченных алгоритмом для решения конкретного экземпляра задачи, зависит не только от размера входных данных, но и от самих данных. Например, количество операций алгоритма сортировки вставками значительно меньше в случае, если входные данные уже отсортированы. Чтобы избежать подобных трудностей, рассматривают понятие временной сложности алгоритма в худшем случае.

Временная сложность алгоритма (в худшем случае) — это функция размера входных и выходных данных, равная максимальному количеству элементарных операций, проделываемых алгоритмом для решения задачи. Аналогично понятию временной сложности в худшем случае определяется понятие временная сложность алгоритма в наилучшем случае.

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

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

Классы сложности.

Классами сложности – множества вычислительных задач, примерно одинаковых по сложности вычисления.

1. Класс P (от англ. polynomial) – класс алгоритмов, работающих за полиноминальное время, время работы не существенно зависит от размера входных данных. Стандартные алгоритмы целочисленного сложения, перемножения матриц и др.

2. Класс NP (от англ. non-deterministic polynomial) – класс алгоритмов, время работы которых существенно зависит от размера входных данных; в то же время, если предоставить алгоритму некоторые дополнительные сведения (сертификат решения), то он сможет достаточно быстро решить задачу. Задача выполнимости булевых формул: узнать по данной булевой формуле, существует ли набор входящих в неё переменных, обращающий её в 1. Сертификат — такой набор. Существование целочисленного решения у заданной системы линейных неравенств. Сертификат — решение.

3.Класс BPP (от англ. bounded-error, probabilistic, polynomial) – класс алгоритмов, быстро (за полиномиальное время) вычислимых и дающих ответ с высокой вероятностью (причём, жертвуя временем, можно добиться сколь угодно высокой точности ответа). Решение СЛАУ методом половинного деления, методом хорд и др.

ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ.

3.1. Принцип программного управления

Такое определение подчеркивает, что в основу ЭВМ положен принцип программного управления. Один из способов его реализации был предложен в 1945 г. американским математиком Дж. фон Нейманом, и с тех пор неймановский принцип программного управления используется в качестве основного принципа построения ЭВМ. Этот принцип состоит в следующем:

  • информация кодируется в двоичной форме и разделяется на единицы (элементы) информации — слова;
  • разнотипные слова информации различаются по способу использования, но не способами кодирования;
  • слова информации размещаются в ячейках памяти машины и идентифицируются номерами ячеек, которые называются адресами слов;
  • алгоритм представляется в форме последовательности управляющих слов — команд, которые определяют наименование операции и слова информации, участвующие в операции. Алгоритм, представленный в терминах машинных команд, называется программой;
  • выполнение вычислений, предписанных алгоритмом, сводится к последовательному выполнению команд в порядке, однозначно определяемом программой. Первой выполняется команда, заданная пусковым адресом программы. Обычно это адрес первой команды программы. Адрес следующей команды однозначно определяется в процессе выполнения текущей команды и может быть либо адресом следующей по порядку команды, либо адресом любой другой команды. Процесс вычислений продолжается до тех пор, пока не будет выполнена команда, предписывающая прекращение вычислений.

Выборка программы из памяти осуществляется с помощью счетчика команд. Процессор начинает работу после того, как программа записана в память ЭВМ, а в счетчик команд записан адрес первой команды программы. Счётчик команд процессора последовательно увеличивает хранимый в нем адрес очередной команды на длину команды.

Работу процессора можно описать следующим циклом: чтение команды из памяти по адресу, записанному в СК, увеличение СК на длину прочитанной команды , выполнение прочитанной команды.

А так как команды программы расположены в памяти друг за другом, то тем самым организуется выборка цепочки команд из последовательно расположенных ячеек памяти. Если же нужно после выполнения команды перейти не к следующей, а к какой-то другой, используются командыусловного илибезусловного перехода, которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду. Выборка команд из памяти прекращается после достижения и выполнения команды «стоп».

Таким образом,процессор исполняет программу автоматически, команду за командой,без вмешательства человека.

3.2. Структуры ЭВМ и вычислительных систем.

Вычислительный процесс должен быть предварительно представлен для ЭВМ в виде программы — последовательности инструкций (команд), записанных в порядке выполнения. В процессе выполнения программы ЭВМ выбирает очередную команду, расшифровывает ее, определяет, какие действия и над какими операндами следует выполнить. Эту функцию осуществляет УУ. Оно же помещает выбранные из ЗУ операнды в АЛУ, где они и обрабатываются. Само АЛУ работает под управлением УУ.

Обрабатываемые данные и выполняемая программа должны находиться в запоминающем устройстве — памяти ЭВМ, куда они вводятся через устройство ввода. Данные, которые хранятся на внешних носителях, доступны программе через устройства ввода\вывода.

Достоинства и недостатки архитектуры вычислительных машин и систем изначально зависят от способа соединения компонентов. При самом общем подходе можно говорить о двух основных типах структур вычислительных машин и двух типах структур вычислительных систем.

Наши рекомендации