Главная страница
Навигация по странице:

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

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

  • ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ. Принцип программного управления

  • условного

  • процессор исполняет программу автоматически

  • Структуры вычислительных машин В настоящее время примерно одинаковое распространение получили два способа построения вычислительных машин: с непосредственными связями

  • ГОС. Программирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства


    Скачать 0.72 Mb.
    НазваниеПрограммирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства
    АнкорГОС.docx
    Дата12.07.2018
    Размер0.72 Mb.
    Формат файлаdocx
    Имя файлаГОС.docx
    ТипРешение
    #21372
    страница2 из 9
    1   2   3   4   5   6   7   8   9

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

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

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

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

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

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

    – унарный.

    – бинарный.

    – трёхместный.

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



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

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

    2. Множество – область значений предиката.

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

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

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













    1. Табличный




      1

      2

      4

      5



      1

      0

      0

      0

    2. Словесный

    Предикат выполняется при и не выполняется во всех остальных точках x области определения и не выполняется при n = 2,4,5.

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







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







    Кванторы.

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

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

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

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









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









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

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

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

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

    1. Законы де Моргана., (перенос отрицания).

    2. Перестановка одноимённых кванторов (коммунитативные законы). , .

    3. Дистрибутивные законы. ,

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

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


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

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

    Основные требования к алгоритму: 1. Каждый алгоритм должен иметь данные: входные, выходные и промежуточные; 2. Данные для своего размещения требуют внутреннюю и внешнюю память; 3. Алгоритм состоит из отдельных элементарных шагов количество, которое конечное; 4. Последовательность шагов алгоритма детерминировано, то есть после каждого шага либо указывается какой шаг делать дальше либо дается команда остановки; 5. Результативность – остановка после конечного числа шагов с указанием того что считать результатом.

    Алгоритмическая модель – формализация понятия алгоритма. Она является универсальной, то есть допускается описание любых алгоритмов. Выделяют 3 основных типа алгоритмической модели:1. Рекурсивные функции – вычисление и числовые функции; 2. Машина Тьюринга – прообраз современной ЭВМ. В основе лежит представление, а в алгоритме как в некотором детерминированном устройстве способном выполнять в каждый отдельный момент времени лишь примитивные операции; 3. Каноническая система Поста и нормальные алгоритмы Маркова. Преобразование слов в произвольных алфавитах в кот. элементарные операции это подстановки, то есть замены части слова другим словом.

    Машина Тьюринга представляет собой автомат, с конечным числом состояний, соединенный с внешней памятью – лентой, разбитой на ячейки, в каждой из которых записан один из символов конечного алфавита  А= { a1, ... am}. Автомат связан с лентой с помощью головки, которая в каждый момент времени обозревает одну ячейку ленты, и в зависимости от символа в этой ячейке и состояния управляющего устройства записывает в ячейку символ (совпадающий с прежним или пустой), сдвигается на ячейку вправо или влево или остается на месте. Среди состояний управляющего устройства выделим начальное состояние q1  и заключительное состояние qz. В начальном состоянии машина находится перед началом работы. Попав в заключительное состояние, машина останавливается.  Т.о. память машины Т – это конечное множество состояний (внутренняя память) и лента (внешняя память). Лента бесконечна в обе стороны, однако в любой момент времени лишь конечный отрезок ленты будет заполнен символами. Поэтому важна не фактическая бесконечность ленты, а ее неограниченность, т.е. возможность писать на ней сколь угодно длинные, но конечные слова.

    Данные в машине Т– это слова в алфавите ленты; на ленте записываются и исходные данные и окончательные результаты. Элементарные шаги – это считывание и запись символов, сдвиг головки на ячейку влево или вправо, а также переход управляющего устройства в следующее состояние.

    Детерминированность машины Т определяется следующим образом: для любого внутреннего состояния qi и символаaj однозначно заданы

    а) следующее состояние qi`

    б) символ aj`, который надо записать в ту же ячейку вместо aj (стирание – это запись пустого символа )

    в) направление сдвига головки dk (L – влево, R– вправо, E – на месте).

    Это задание может описываться либо системой правил

                             qi aj   qi` aj` dk

    либо таблицей, строкам которой соответствуют состояния, столбцам – входные символы, а на пересечении записана тройка символов qi` aj` dk.

    либо блок-схемой (диаграммой переходов), в которой состояниям соответствуют вершины, а правилу  вида (qi aj   qi` aj` dk) – ребро, ведущее из                 qi в qi` .


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

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

    функции, которые чаще всего используются для вычисления сложности. Функции перечислены в порядке возрастания сложности. Чем выше в этом списке находится функция, тем быстрее будет выполняться алгоритм с такой оценкой.
    1. C – константа
    2. log(log(N))
    3. log(N)
    4. N^C, 0
    5. N
    6. N*log(N)
    7. N^C, C>1
    8. C^N, C>1
    9. N! Самый трудоемкий.
    Если мы хотим оценить сложность алгоритма, уравнение сложности которого содержит несколько этих функций, то уравнение можно сократить до функции, расположенной ниже в таблице. Например, O(log(N)+N!)=O(N!).
    Если алгоритм вызывается редко и для небольших объёмов данных, то приемлемой можно считать сложность O(N^2), если же алгоритм работает в реальном времени, то не всегда достаточно производительности O(N).
    Обычно алгоритмы со сложностью N*log(N) работают с хорошей скоростью. Алгоритмы со сложностью N^C можно использовать только при небольших значениях C. Вычислительная сложность алгоритмов, порядок которых определяется функциями C^N и N! очень велика, поэтому такие алгоритмы могут использоваться только для обработки небольшого объёма данных.

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

    1. Класс P – задачи, которые могут быть решены за время, полиномиально зависящее от объёма исходных данных, с помощью детерминированной вычислительной машины (например, машины Тьюринга),

    2. Класс NP — задачи, которые могут быть решены за полиномиально выраженное время с помощью недетерминированной вычислительной машины, то есть машины, следующее состояние которой не всегда однозначно определяется предыдущими. К классу NP относятся задачи, решение которых с помощью дополнительной информации полиномиальной длины, данной нам свыше, мы можем проверить за полиномиальное время. В частности, к классу NP относятся все задачи, решение которых можно проверить за полиномиальное время. Класс P содержится в классе NP. Классическим примером NP-задачи является задача о коммивояжёре.

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

    Поскольку класс P содержится в классе NP, принадлежность той или иной задачи к классу NP зачастую отражает наше текущее представление о способах решения данной задачи и носит неокончательный характер. В общем случае нет оснований полагать, что для той или иной NP-задачи не может быть найдено P-решение. Вопрос о возможной эквивалентности классов P и NP (то есть о возможности нахождения P-решения для любой NP-задачи) считается многими одним из основных вопросов современной теории сложности алгоритмов. Ответа на этот вопрос нет. Сама постановка вопроса об эквивалентности классов P и NP возможна благодаря введению понятия NP-полных задач. NP-полные задачи составляют подмножество NP-задач и отличаются тем свойством, что все NP-задачи могут быть тем или иным способом сведены к ним. Из этого следует, что если для NP-полной задачи будет найдено P-решение, то P-решение будет найдено для всех задач класса NP. Примером NP-полной задачи является задача о конъюнктивной форме.

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

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

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

    • информация кодируется в двоичной форме и разделяется на единицы (элементы) информации — слова;

    • разнотипные слова информации различаются по способу использования, но не способами кодирования;

    • слова информации размещаются в ячейках памяти машины и идентифицируются номерами ячеек, которые называются адресами слов;

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

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

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

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

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

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


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

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

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

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

    Структуры вычислительных машин

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

    Типичным представителем первого способа может служить классическая фон-неймановская ВМ (рис.).



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

    Основным достоинством такой архитектуры является возможность расширения узких каналов данных только определенных связей, что экономически может быть наиболее выгодным решением.
    1   2   3   4   5   6   7   8   9


    написать администратору сайта