
- •Введение.
- •Понятие об объекте управления и процессе управления.
- •Управление в реальном времени. (real-time control)
- •2. Принципы обеспечения процесса управления.
- •Физический уровень
- •Синхронная передача с отдельной линией синхронизации.
- •Асинхронный способ передачи
- •Символьный уровень представления информации
- •Логический уровень представления информации
- •Сложные динамические структуры данных:
- •Современные распределенные системы
- •Модель клиент-сервер
- •Преимущества модели клиент-сервер
- •Уровни формализации при обеспечении процесса управления
- •Уровень алгоритмического обеспечения процесса управления.
- •Сложность алгоритмов.
- •Прикладное программное обеспечение.
- •3. Интерфейс пользователя Интерфейс пользователя - это программные и аппаратные средства взаимодействия пользова-
- •Развитие wimp - интерфейса идет по пути реализации следующих тенденций:
- •Организация разработки проектов асутп Основные положения
- •Технико-экономическое обоснование (тэо)
- •Схемы автоматизации
- •Условные графические и позиционные обозначения элементов принципиальной схемы
- •Пример принципиальной электрической схемы
- •Раздельный способ выполнения принципиальных схем:
- •Системы автоматизации проектных работ Назначение и принципы создания сапр
- •Состав и назначение компонентов сапр
- •Взаимодействие обеспечивающих подсистем сапр.
- •Принципы создания сапр
- •Технические средства сапр
- •Информационное обеспечение асу тп
- •Применение видов средств измерения to c в технологическом процессе.
- •Средства измерения давления стп.
- •Преобразователи прямого измерения.
- •Средства измерения уровня.
- •Краткая характеристика основных типов уровнемеров.
- •Тс измерения сил, масс. Весодозирующие устройства.
- •Весоизмерительные устройства (виу)
- •Средства измерения расхода
- •Измерительные преобразователи перемещений
- •Классификация
- •Краткий сравнительный анализ по точности
- •По преобразователям различают три основных структурных схемы.
- •Современные концепции построения асу тп на основе scada- систем
- •Библиография по разделу
Сложность алгоритмов.
Сложность алгоритма является основным параметром, по которому можно определить эффективен тот или иной алгоритм.
Особенно это нужно когда предоставляется возможность выбора из нескольких возможных наилучшего алгоритма.
Понятно, что при сравнении двух алгоритмов, обрабатывающих один и тот же объем данных, время обработки является достаточно точным критерием наиболее эффективного алгоритма при прочих равных условиях.
Формально сложность алгоритма определяется как порядок функции, выражающей время его работы.
Это выражается следующим образом:
Функции
и
считаются одного порядка, если для
больших
существует такая константа
,
что
.
Выражение, характеризующее сложность алгоритма при этом запишется как
Определим формально сложность алгоритма для метода обменной сортировки массива данных.
Алгоритм обменной сортировки массива, состоящего из n элементов списка, можно описать следующим образом:
определяется наименьший элемент списка данных;
осуществляется обмен наименьшего элемент с первым элементом списка;
в полученном списке снова определяется наименьший элемент;
производится обмен полученного последнего наименьшего элемента списка со вторым элементом.
При
этом при определении первого наименьшего
элемента производится
сравнений;
При
определении второго элемента
сравнений
и т.д.
Общий объем операции сравнения определяется по формуле:
;
т.к.
число сравнений выражается полиномом
2ой
степени сложности этого алгоритма
квадратичная и ее можно формально
записать как
.
Сейчас рассмотрим операцию перемножения матриц.
Каждое
перемножение дает квадратичную
полиномиальную сложность, равную:
.
Кроме того, при построении новой матрицы, являющейся произведением двух других матриц, необходим цикл вычисления новых слов матрицы.
Процедура цикла вносит третью размерность в параметр сложности алгоритма, т.е. общее число всех операций определяется как
.
Таким образом, общая сложность алгоритма операций перемножения двух матриц может быть определена как:
.
Алгоритм с оценкой сложности равной , работает быстрее, чем алгоритм с оценкой равной .
Таким образом, выбор оптимального алгоритма прямым образом зависит от оценки его сложности.
Распространенной сложностью алгоритма является экспоненциальная сложность.
Например, задача выбора одного из двух вариантов перемещения объекта двумя исполнителями.
Исполнители получают доступ к процедуре выбора по очереди.
При этом у каждого исполнителя существует только два варианта перемещения объекта.
Если
процедура заканчивается через n
ходов, то это означает, что осуществлено
перемещений.
Т.е.
для анализа всех вариантов требуется
количество времени пропорциональное
вариантов или формально сложность
такого алгоритма может быть оценена
как:
.
Т.е. сложность оценивается экспоненциальной зависимостью.
В таблице приведена сравнительная оценка различных степеней сложности алгоритмов в зависимости от числа членов n.
|
|
|
|
1 |
1 |
1 |
2 |
5 |
5 |
25 |
32 |
10 |
10 |
100 |
1024 |
20 |
20 |
400 |
106 |
30 |
30 |
900 |
109 |
100 |
100 |
104 |
1030 |
Линейная зависимость в параметре сложность алгоритма является более предпочтительной, чем полиномиальная, а тем более - экспоненциальная.
Применение алгоритмов.
Основная сфера применения алгоритмов – это описание задач для решения их с помощью компьютеров.
Исходные задачи, прежде чем быть представленными с помощью алгоритмов, должны быть подвергнуты анализу на способ представления в алгоритмическом виде.
Здесь могут быть две ситуации:
задача решается однозначно прямыми методами, без дополнительной информации;
для решения задачи существует несколько способ решения и необходимы правила выбора наилучшего решения.
В первом случае метод решения называется детерминированным, раз и навсегда определенным, и в этом случае алгоритм имеет регулярную сущность.
Регулярная сущность, регулярный объект – это объект, существование которого не зависит от существования других объект.
Примерами таких задач являются задачи, решаемые с помощью математических уравнений, задачи вывода результатов, проверки данных и т.п.
Для детерминированных задач и их алгоритмов недопустимы такие методы как, например, метод проб и ошибок.
Во втором случае классы задач требуют выбора метода решения из нескольких существующих и называется недетерминированными.
В этом случае для описания задач применяются алгоритмы, реализующие метод проб и ошибок, метод повторов или вероятностного выбора.
К таким задачам относятся, например, задачи нахождения кратчайших путей, задачи поиска объектов при отсутствии явных параметров поиска, задачи выбора оптимума и т.п.
Уровень программного обеспечения процесса управления.
Разработка программное обеспечение систем управления в общем, функциональном и системном аспекте ничем не отличается от разработки программ в других приложениях.
Понятие программное обеспечение (ПО, Software) определяется как совокупность программ, процедур, правил и документации, входящих в состав вычислительной системы (т.е. компьютера, совокупности их, включая сети).
программное обеспечение в настоящее время прогрессирует наиболее стремительно и динамично.
Каждый год появляются новые Операционные среды, новые версии известных платформ, новые прикладные пакеты, средства интерфейса пользователя, средства управления базами данных и т.п.
Разработчики приложений разных отраслей науки и техники не успевают синхронно освоить все новые предложения в области программного обеспечения.
Не смотря на кажущуюся перегрузку в восприятии программных предложений, можно отследить общие тенденции в развитии программное обеспечение.
Выполним условную классификацию средств программного обеспечения:
Все программное обеспечение делятся на три функционально различные группы:
системное;
прикладное;
средства интерфейса пользователя.
Рассмотрим каждую из групп программного обеспечения:
Системное программное обеспечение.
Системное ПО (System Software) – это ПО, используемое для разработки и выполнения прикладных программ.
В составе системного ПО можно выделить* три группы программ:
системы программирования;
операционные системы (ОС);
сервисные программы или утилиты;
*Данное разделение весьма условно
Система программирования.
Система программирования (programming system) – это один или более языков программирования в совокупности со средой, необходимой для их использования на данном компьютере.
Система программирования включает в себя весь набор программ, обеспечивающий процедуру набора, отладки и трансляции программы, написанной на определенном языке программирования.
Каждый язык программирования имеет свою собственную систему программирования.
Средства системы программирования содержат следующий набор программ:
транслятор;
компоновщик;
загрузчик;
библиотеки подпрограмм;
текстовые и графические редакторы;
файлы описания системы;
обучающие программные системы.
а) Программа транслятор (translator) – это программа, транслирующая (преобразующая) текст на одном из языков программирования в текст на машинном языке.
При трансляции текста программы вводится специальные процедуры синтаксического анализа каждого оператора языка программирования и в случае обнаружения ошибки в синтаксисе транслятор выдает сообщение об ошибке , препятствую дальнейшему ходу преобразования операторов программы.
Трансляторы могут быть реализованы по принципу работы в виде программ компиляторов либо программ интерпритаторов.
Компилятор (compiler) – это программа, переводящая текст программы на языке программирования высокого уровня в эквивалентную программу на машинном языке.
Интерпритатор (interpreter) – это программа, анализирующая команды и операторы программы на языке программирования и немедленно их выполняющая.
При компиляции текста программы образуется объектный модуль – он представляет собой перечень машинных кодов, не имеющих физических адресов в памяти компьютера.
б) Компоновщик (linker) – программа, строящая загрузочный модуль из объектных модулей.
Загрузочный модуль отличается от объектного только тем, что с помощью компоновщика он настраивается на конкретные адреса памяти и тем самым становится готовым к загрузке.
в) Загрузчик (loader) – программа, считывающая загрузочный модуль в оперативную память, настраивающая и выполняющая его.
Таким образом, при компиляции исходный модуль (т.е. программа на языке программирования, введенная в компьютер) претерпевает три этапа преобразования:
компиляция в объектный модуль;
компоновку в загрузочный модуль;
загрузку.
При интерпретации не существует разделения на объектные и загрузочные модули: каждый оператор языка, после его анализа на правильность написания, настраивается на конкретные адреса памяти и тут же выполняется.
г) Библиотека подпрограмма (Subroutine library) – это специальным образом организованный файл, содержащий перечень наиболее часто применяемых подпрограмм, которые доступны по имени и могут быть извлечены для присоединения и некоторой программе.
д) Текстовый редактор (text editor) – программа, обеспечивающая редактирование текстов программ и документов в соответствии с задаваемыми пользователем командами.
Графический редактор или редактор изображений – программа, обеспечивающая редактирование графических элементов и изображений на экране дисплея.
Современные системы программирования могут включать и другие компоненты, например, обучающие системы.
Операционные системы (ОС).
Операционная система (operating system) – это совокупность программных средств, обеспечивающих управление аппаратными ресурсами вычислительной системы и взаимодействие программных процессов с аппаратурой, другими процессами и пользователем.
ОС выполняет следующие действия: управление памятью, управление вводом – выводом, управление файловой системой, управление взаимодействием процессов, диспетчеризация процессов, защиту, учет использования ресурсов, обработку командного языка.
Это определение больше относится к традиционным ОС, таким как MS DOS, т.к. с появлением ОС нового поколения (WINDOWS NT, WINDOWS 95, OS/2 WARP) появились новые функции:
средства поддержки объектно-ориентированного программирования; сетевых протоколов, средств мультимедиа, поддержки средств удаленного доступа, в том числе протокола TCP/IP сети Internet; поддержка игровых услуг и т.д.
Любая ОС начинает свою работу с вызова в память своего ядра, которое находится в памяти резидентно, т.е. постоянно, на все время работы компьютера до выключения его из сети.
Ядро ОС (operation system kernel) – это постоянно находящаяся в памяти часть операционной системы, управляющая всем другими процессами ОС и распределяющая для них ресурсы.
Несколько отдельной группой выглядят специальные сетевые ОС, которые обслуживают вычислительные сети различного масштаба и назначения( NET WARE(Novell), IBM MANAGER и др.).
Сервисные программы или утилиты.
Сервисные программы или утилиты (Service routine, utility) – это набор программ, предназначенных для выполнения вспомогательных функций при работе пользователя.
К таким программам можно отнести следующие:
форматирование документов;
создание текстовых файлов;
калькулятор;
календарь;
обработчики гипертекстов;
таблица символов;
программа обмена информацией между пользователями;
и т. д.
Количество сервисных программ непостоянно и определяется полностью необходимостью и потребностями конкретного пользователя. В частности, пользователь может сам разработать любой утилит, который облегчает его жизнь в компьютере или обеспечивает новые сервисные функции.