Графическая иллюстрация работы методов оптимизации. Работа с запрограммированными методами первого, второго и нулевого порядков. Анализ свободно распространяемого программного обеспечения. Применяемая архитектура практикума, пользовательский интерфейс.
Аннотация к работе
На кафедре был создан практикум по этому курсу в среде Microsoft DOS, позволяющий студентам изучать методы на примерах, работая за компьютером в терминальном классе. В методе наискорейшего градиентного спуска последующая точка минимизирующей последовательности также ищется в направлении - направлении антиградиента функции, построенном в текущей точке, но условия вычисления шага позволяют определить наилучшее положение точки на этом направлении. Как видно из чертежа, точка принимает на направлении спуска предельное положение, которое характеризуется тем, что линия уровня, проходящая через точку , касается направления спуска, а, следовательно, в точках минимизирующей последовательности, построенной по методу градиентного наискорейшего спуска, выполняется условие: Основной критерий окончания метода: Начальные параметры метода: Изменяемые параметры метода: отрезок для уточнения шага . Алгоритм метода: 1) Задается начальная система точек (многогранник), включающая в себя точку: для функции 2-х переменных задается три начальные точки: 2) Вычисляется значение функции во всех точках многогранника и выбирается: лучшая точка : (здесь - номер итерации, - номер точки) худшая точка : Далее заданная система из точки перестраивается, для этого: 3) Строится центр тяжести системы заданных точек за исключением худшей: (для функции 2-х переменных точка - середина отрезка, соединяющего точки за исключением худшей) При этом если , то в новой системе точек точка будет заменена на , если же , то в новой системе точек точка будет заменена на . l если выполняется операция редукции: при этом формируется новый многогранник, содержащий точку с уменьшенными вдвое сторонами: Рисунок 1.14.В разделе «Охрана труда и безопасность жизнедеятельности» были рассмотрены наиболее существенные в бытовых условиях вредные воздействия, оказываемые вычислительной техникой, в частности компьютерами, на организм человека.В ходе настоящей дипломной работы разработан компьютерный лабораторный практикум по курсу «Теория оптимизации», в возможности которого входит: l Предоставление обучаемым графической иллюстрации работы методов оптимизации l Работа с запрограммированными методами первого, второго и нулевого порядков l Ведение протокола работы l Работа в локальных сетях и через Интернет l Предоставление справочной информации по запросу l Централизованность программ и данных Практикум разработан с использованием свободно распространяемого программного обеспечения и обладает хорошей переносимостью с одной аппаратно-программной платформы на другую, благодаря использованию стандартных программных средств.
Введение
В современном мире постоянно происходило совершенствование системы образования. Происходит модернизация старых, поиск новых способов обучения, способных улучшить сделать образовательный процесс более эффективным.
В настоящее время активно идут процессы внедрения в образовательный процесс компьютерных технологий. Компьютеры, разработанные первоначально для автоматизации вычислительных операций, с развитием средств мультимедиа превратились в мощнейший инструмент обработки информации различного рода. Свое применение они нашли и в сфере образования, предоставив свои возможности при работе с объемом человеческих знаний, накопленных за всю историю человечества.
Использование информационных технологий позволяет заменить часть ручного труда преподавателя трудом машинным, который, как и в других сферах, обходится дешевле, и, следовательно, более эффективен. Машины не устают, готовы к работе в любое время, не совершают арифметических ошибок и способны обладать огромными объемами памяти. Поэтому они внедряются в учебный процесс там, где это возможно.
Большое развитие компьютерные технологии получили в сфере дистанционного обучения. С появлением компьютерных сетей дистанционное обучение, подразумевающее работу обучающего с обучаемым на расстоянии, получило возможность мгновенной передачи информации между ними. Это позволило оперативно предоставлять учебные материалы и проводить контроль полученных знаний при снижении расходов на транспорт и связь.
Когда мы говорим о сетевых технологиях, то прежде всего имеем ввиду сеть интернет. Эта сеть, связывающая компьютеры по всему миру, позволяет организовать дистанционный учебный процесс практически в любой точке планеты в кратчайшие сроки.
Использование интернет-технологий также помогает в расширении виртуального образовательного пространства, ввиду того, что знания и учебные материалы из разных источников можно моментально получить в одном месте, стоит лишь правильно сформировать поисковый запрос. Данное обстоятельство несомненно способствует творческому процессу обучения и самостоятельной работе обучаемых в виртуальном образовательном пространстве.
Системы компьютерного дистанционного обучения в результате развития приняли различные формы, предназначенные для выполнения соответствующих задач, это и компьютерные учебники, содержащие учебные материалы в оптимизированной для наилучшего восприятия мультимедийной форме, и системы тестирования, обеспечивающие контроль знаний обучаемых путем анализа ответа на серии тематических вопросов, и лабораторные практикумы, обеспечивающие получение практических навыков использования полученных знаний.
В сфере информационных технологий зачастую при разработке нового продукта можно использовать готовые решения, которые поставляются в виде некоторой оболочки и наполняются содержимым по заданной тематике. Если использование готовых решений представляется затруднительным в связи с особенностями предметной области, приходится создавать новые программные продукты, позволяющие учесть эти особенности.
В направлении информатизации сферы образования работают сейчас практически все гуманитарные и технические учебные заведения разных стран. Разработки в этом направлении ведутся и в Московском авиационном институте. Кафедра «Математическая кибернетика» факультета «Прикладная математика и физика» института в течении многих лет разрабатывает учебные материалы с использованием компьютерных технологий. За это время создан комплекс компьютерных пособий и учебников, охватывающих предметы, читаемые преподавателями кафедры. Комплекс, включающий в себя более 70 компьютерных учебников, поддерживает 8 разделов курса "Теория управления", 7 разделов курса "Системный анализ", 3 раздела курса "Линейная алгебра и аналитическая геометрия", а также курсы "Теория графов", "Теория функций комплексного переменного", "Линейное программирование", "Линейные дифференциальные уравнения" и другие. Также функционирует кафедральных сайт в интернете, позволяющий студентам и преподавателям института обмениваться информацией дистанционно. В настоящее время на кафедре ведется работа по созданию других средств обучения с применением информационных технологий.
Кафедра «Математическая кибернетика» факультета «Прикладная математика и физика» института читает студентам курс «Методы оптимизации», изучающий методы оптимизации математических функций. На кафедре был создан практикум по этому курсу в среде Microsoft DOS, позволяющий студентам изучать методы на примерах, работая за компьютером в терминальном классе. В рамках дипломного проекта поставлена задача создания аналогичного практикума, работающего в сетевом режиме с целью упростить проведение работ. Также требуется расширить функционал имеющегося практикума для достижения большей наглядности примеров.
В рамках дипломного проекта требуется: l Изучить описываемые методы оптимизации и составить документацию по ним в мультимедийной форме. l Разработать архитектуру практикума l Разработать пользовательский интерфейс l Выбрать программные средства для разработки и составить алгоритмы
Раздел 1 содержит теоретические сведения о математических методах поиска безусловного экстремума функций многих переменных. Приводятся алгоритмы, графические иллюстрации и условия окончания методов.
Раздел 2 содержит описание практической части разработанного практикума. Проводится анализ современных программных архитектур, обоснование выбора клиент-серверной модели, анализ и выбор программных сред. Также приводится описание пользовательского интерфейса, форм отчетности и справочной системы практикума.
Раздел 3 содержит расчет экономических показателей, связанных с выполнением дипломного проекта.
В разделе 4 описаны вредные воздействия, возникающие при использовании информационных технологий в обучении и способы их сокращения.
1. Теоретическая часть
Решение задачи о поиске безусловного экстремума функции многих переменных с помощью необходимых и достаточных условий приводит к необходимости решать систему нелинейных уравнений с неизвестными с последующей проверкой знакоопределенности матрицы Гессе . Как правило, для достаточно сложных функций такая процедура решения задачи достаточно трудоемка и подразумевает численное решение нескольких задач. Поэтому возникает необходимость использовать так называемые прямые или численные методы безусловной оптимизации, которые позволяют найти стационарные точки функции, не используя аппарат необходимых и достаточных условий экстремума.
Компьютерный лабораторный практикум предназначен для студентов технических специальностей вузов и позволяет в наглядной и доступной форме представить численные алгоритмы отыскания экстремумов. Особенностью практикума является интерактивная форма реализации алгоритмов, при которой студент на каждой итерации принимает решение о выборе параметров методов, основываясь на числовой и графической информации о ходе процесса оптимизации.
Целью лабораторного практикума является изучение студентами прямых методов поиска безусловного экстремума двух типов функций: квадратичной функции 2-х переменных:
овражной функции
Для достижения цели студент должен, изменяя параметры методов, добиться выполнения критерия окончания счета для каждого метода с одной и той же заданной точностью ?, из одной и той же начальной точки, за заданное для каждого метода число итераций N.
1.1 Методы, реализованные в лабораторном практикуме
Прямые методы, представленные в практикуме имеют один и тот же алгоритм где u - текущая точка последовательности, причем - задается из физического содержания задачи или произвольно;
u - последующая точка последовательности;
u - приемлемое направление перехода из точки в точку - направление спуска. Приемлемым при решении задачи поиска минимума функции будет только то направление, для которого , что обеспечивается выполнением условия ;
u - шаг (число >0), и отличаются друг от друга способом задания и выбором .
Алгоритм работы прямых методов схематически изображен на рис. 1.1
Рисунок 1.1. Алгоритм работы прямых методов
В практикуме реализованы: l методы первого порядка, использующие информацию о 1-х производных функции : · метод градиентного спуска;
· метод наискорейшего градиентного спуска;
· метод покоординатного спуска;
· метод Гаусса-Зейделя;
· метод сопряженных градиентов. l методы второго порядка, использующие для своей реализации информацию о 1-х и 2-х производных функции : · метод Ньютона;
· метод Ньютона-Рафсона;
· метод Марквардта l Методы нулевого порядка, представленные в практикуме, позволяют производить поиск безусловного экстремума функций с помощью заданной последовательности операций. Повторение этих операций производится до тех пор, пока не будет выполнен критерий окончания, определяемый используемым методом.
В практикуме реализованы следующие методы нулевого порядка: · метод случайного поиска
· метод деформируемого многогранника
· метод конфигураций
1.1.1 Метод градиентного спуска
Алгоритм метода: , здесь: o - направление антиградиента функции;
o - шаг выбирается из условия убывания функции в точках последовательности
Геометрическая интерпретация метода:
Рисунок 1.2. Геометрическая интерпретация метода
Основной критерий окончания метода: Построение последовательности заканчивается в точке, для которой где - заданное малое положительное число, здесь
Начальные параметры метода: .
Изменяемый параметр метода: величина шага .
Особенности реализации алгоритма. Вопрос о величине шага на каждой итерации решается пользователем, причем шаг может быть, как уменьшен, если не выполняется условие , так и увеличен, если скорость сходимости алгоритма невысока (по субъективной оценке пользователя).
Рекомендации по выбору параметров метода. Согласно алгоритму метода, каждая последующая точка в методе градиентного спуска ищется в направлении направлении антиградиента функции, построенном в текущей точке . Поэтому, если направление антиградиента в текущей точке приблизительно совпадает с направлением на минимум (согласно чертежу), шаг следует увеличить, чтобы ускорить процесс сходимости, если же направление антиградиента сильно отличается от направления на минимум, шаг уменьшают, в противном случае функция может уменьшиться несущественно или даже возрасти.
1.1.2 Метод градиентного наискорейшего спуска
Алгоритм метода: , здесь
· - направление антиградиента функции
· - шаг вычисляется из условия наибольшего убывания функции в точках последовательности: ·
Геометрическая интерпретация метода
Рисунок 1.3. Геометрическая интерпретация метода
В методе наискорейшего градиентного спуска последующая точка минимизирующей последовательности также ищется в направлении - направлении антиградиента функции, построенном в текущей точке, но условия вычисления шага позволяют определить наилучшее положение точки на этом направлении. Как видно из чертежа, точка принимает на направлении спуска предельное положение, которое характеризуется тем, что линия уровня, проходящая через точку , касается направления спуска, а, следовательно, в точках минимизирующей последовательности, построенной по методу градиентного наискорейшего спуска, выполняется условие:
Основной критерий окончания метода:
Начальные параметры метода:
Изменяемые параметры метода: отрезок для уточнения шага .
Особенности реализации алгоритма. При решении задачи поиска оптимального шага , функция становится функцией одой переменной , т.к. , а и известны. Следовательно, задача о поиске оптимального шага - это задача , которая в лабораторной работе решается численно методом дихотомии на отрезке с заданной точностью . Вопрос о границах отрезка на каждой итерации решается пользователем.
Рекомендации по выбору параметров метода. При задании на каждой итерации отрезка для уточнения шага, следует помнить, что искомое решение может лежать как внутри, так и на границе интервала .
Проиллюстрируем ситуацию, при которой шаг вычисляется численно методом дихотомии. Для этого построим график функции , которая в случае если является квадратичной функцией, имеет вид:
Рисунок 1.4 Метод дихотомии
Для вычислений по методу дихотомии должен быть задан отрезок для уточнения оптимального значения шага.
Как видно из чертежа, если в качестве отрезка будет выбран , оптимальное значение шага, при котором функция принимает минимальное значение, окажется внутри отрезка, и метод с заданной точностью отыщет это значение. Если же отрезок будет , в качестве результата счета по методу дихотомии будет получено значение - как дающее наименьшее значение функции на отрезке, аналогично при выборе отрезка будет получено значение .
Таким образом, отрезок для уточнения оптимального шага должен быть достаточно большим, чтобы гарантировано включать искомое значение шага. Признаками неверного задания отрезка являются: отсутствие касания траектории спуска из точки и линии уровня функции через точку , а также равенство величины оптимального шага величине одной из границ отрезка .
1.1.3 Метод покоординатного спуска
Алгоритм метода:
здесь: · - проекция на ось антиградиента функции
· - шаг выбирается из условия убывания функции в точках последовательности:
Геометрическая интерпретация метода
Рисунок 1.5. Геометрическая интерпретация метода
Основной критерий окончания метода: Начальные параметры метода: Изменяемые параметры метода: величина шага и направление проекции антиградиента (здесь абсциссы - ось , ординаты - ось )
Особенности реализации алгоритма. Вопрос о величине шага на каждой итерации решается пользователем, причем шаг может быть, как уменьшен, если не выполняется условие , так и увеличен, если скорость сходимости алгоритма невысока (по субъективной оценке пользователя). Вопрос о выборе направления оси для проекции антиградиента, также решается пользователем на каждой итерации.
1.1.4 Метод Гаусса-Зейделя (наискорейшего покоординатного спуска)
Алгоритм метода:
здесь: - проекция на ось антиградиента функции
· - шаг вычисляется из условия наибольшего убывания функции в точках последовательности:
Геометрическая интерпретация метода
Рисунок 1.6. Геометрическая интерпретация метода
Основной критерий окончания метода: Начальные параметры метода: .
Изменяемые параметры метода: отрезок для уточнения шага .
Особенности реализации алгоритма. Задача о поиске оптимального шага (задача ) решается численно методом дихотомии на отрезке с заданной точностью . Вопрос о границах отрезка на каждой итерации решается пользователем. Направление проекции градиента меняется циклически: сначала спуск в направлении оси абсцисс, затем - ординат и т.д.
Рекомендации по выбору параметров метода. Отрезок задается из тех же соображений, что и в методе наискорейшего спуска.
1.1.5 Метод сопряженных градиентов
Алгоритм метода:
здесь: ·
·
·
· - шаг вычисляется из условия наибольшего убывания функции в точках последовательности:
Геометрическая интерпретация метода
Рисунок 1.7. Геометрическая интерпретация метода
Согласно алгоритму, первая итерация метода сопряженных градиентов совпадает с первой итерацией метода наискорейшего спуска.
Вычисление величины по формуле (5.4) обеспечивает для квадратичных функций построение последовательности H-сопряженных направлений , для которых . При этом в точках последовательности градиенты функции взаимно перпендикулярны, т.е.
Основной критерий окончания метода:
Начальные параметры метода:
Изменяемые параметры метода: отрезок для уточнения шага .
Особенности реализации алгоритма. Задача о поиске оптимального шага (задача ) решается численно методом дихотомии на отрезке с заданной точностью . Вопрос о границах отрезка на каждой итерации решается пользователем.
Замечание. Т.к. шаг на каждой итерации вычисляется численно с точностью , за счет накопления ошибки, метод сопряженных градиентов в отдельных случаях может сходиться для квадратичной функции за число итераций, превышающее число переменных.
Рекомендации по выбору параметров метода.
Отрезок задается из тех же соображений, что и в методе наискорейшего спуска.
1.1.6 Метод Ньютона
Алгоритм метода:
здесь: · - направление спуска
·
Особенностью метода Ньютона является то, что при метод позволяет отыскать минимум квадратичной функции за одну итерацию.
Геометрическая интерпретация метода для квадратичной функции: Рисунок 1.8. Геометрическая интерпретация метода
Для неквадратичной функции метод Ньютона предполагает построение последовательности минимумов аппроксимирующих квадратичных функций .
Рисунок 1.9. Последовательность минимумов
Основной критерий окончания метода: Начальные параметры метода:
1.1.7 Метод Ньютона-Рафсона
Алгоритм метода:
здесь: · - направление спуска
· - шаг выбирается из условия убывания функции в точках последовательности: .
Геометрическая интерпретация метода для квадратичной функции:
Рисунок 1.10. Геометрическая интерпретация метода
Основной критерий окончания метода: Начальные параметры метода: .
Изменяемый параметр метода: величина шага
1.1.9 Метод Марквардта
Метод Марквардта (метод Ньютона с переменной матрицей), повторяет метод Ньютона. Отличие заключается в том, что точки строятся по закону:
где - последовательность чисел (>0), обеспечивающих положительную определенность матрицы . Обычно назначается как минимум на порядок больше, чем самый большой элемент матрицы .
1.1.10 Метод Нелдера-Мида (деформируемого многогранника)
Алгоритм метода: 1) Задается начальная система точек (многогранник), включающая в себя точку:
для функции 2-х переменных задается три начальные точки:
2) Вычисляется значение функции во всех точках многогранника и выбирается: лучшая точка : (здесь - номер итерации, - номер точки) худшая точка : Далее заданная система из точки перестраивается, для этого: 3) Строится центр тяжести системы заданных точек за исключением худшей:
(для функции 2-х переменных точка - середина отрезка, соединяющего точки за исключением худшей)
4) Выполняется операция отражение худшей точки через центр тяжести:
здесь - параметр отражения (рекомендуемое значение ).
Рисунок 1.11. Отражение
5) Формируется новая система точек (многогранник). Для этого в точке вычисляется значение функции, полученное значение сравнивается с : если выполняется операция растяжение:
Рисунок 1.12. Растяжение здесь - параметр растяжения (рекомендованное значение )
При этом если , то в новой системе точек точка будет заменена на , если же , то в новой системе точек точка будет заменена на l если выполняется операция сжатие:
Рисунок 1.13. Сжатие здесь - параметр сжатия (рекомендованное значение ).
При этом если , то в новой системе точек точка будет заменена на , если же , то в новой системе точек точка будет заменена на . l если выполняется операция редукции: при этом формируется новый многогранник, содержащий точку с уменьшенными вдвое сторонами:
Рисунок 1.14. Редукция
Т.о. в результате выполнения этого пункта алгоритма формируется новая система точек (многогранник), причем в случае возникновения операций растяжения и сжатия перестраивается только одна точка - , в случае возникновения операции редукции - все точки, за исключением .
6) Процедура 2)-5) повторяется до выполнения критерия окончания счета.
Основной критерий окончания метода:
Дополнительные критерии окончания метода: l при выполнении предельного числа итераций:
при однократном или двукратном одновременном выполнении двух условий: , где - малое положительное число.
Алгоритм работы метода Нелдера-Мида схематически изображен на рис. 1.15
Рисунок 1.15. Диаграмма работы метода Нелдера-Мида
1.1.11 Метод случайного поиска (адаптивный метод случайного спуска)
Алгоритм метода: 1) Задается начальная точка и начальное значение параметра
2) Строится система пробных точек (обычно 5-10 точек):
здесь - номер итерации, - случайный вектор единичной длины, - номер пробной точки.
Построенные пробные точки оказываются лежащими на гиперсфере радиуса (в случае двух переменных - на окружности радиуса ).
3) Для каждой пробной точки вычисляется значение функции и выбирается наилучшая , для которой . Выбор может осуществляться как автоматически, так и при участии пользователя.
4) Проверяется условие:
· если условие выполнено, то система пробных точек считается удачной, далее возможно два продолжения алгоритма: 4.1)
4.2) в направлении, соединяющем точки и делается ускоряющий шаг:
в этом случае, если оказывается, что , принимается
Рисунок 1.16. Удачная система пробных точек если условие не выполняется, делается попытка построить новую удачную систему пробных точек. если при этом число неудачных попыток достигает некоторого заданного числа , текущий радиус уменьшается (автоматически или пользователем).
Рисунок 1.17. Неудачная система пробных точек (слева - возможна повторная попытка, справа - необходимо уменьшить радиус)
5) Процедура 2)-4) повторяется до выполнения критерия окончания счета.
Основной критерий окончания метода: Дополнительные критерии окончания метода: l при выполнении предельного числа итераций: l при однократном или двукратном одновременном выполнении двух условий:
где - малое положительное число.
Алгоритм работы метода случайного поиска схематически изображен на рис. 1.18
Рисунок 1.18. Диаграмма работы метода случайного поиска
1.1.12 Метод конфигураций (Хука-Дживса)
Метод представляет собой комбинацию исследующего (исследовательского) поиска с циклическим изменением переменных и ускоряющего поиска по образцу.
Процесс поиска минимума функции всегда начинается с исследующего поиска.
Исследующий поиск осуществляется вдоль координатных направлений, результатом его являются так называемые точки базиса, в которых вычисляется значение функции .
Поиск по образцу осуществляется в направлении, соединяющем де последующие точки базиса. В точках полученных «по образцу» значение функции не вычисляется, они служат лишь для проведения в них исследующего поиска.
Алгоритм метода: 1) Задается начальная точка и начальные значение приращений . Точка называется точкой старого базиса.
2) Проводится исследующий поиск, в результате которого каждая координата новой точки вычисляется по алгоритму:
В результате исследующего поиска получается точка .
Если при этом , то - точка нового базиса.
Если , то исследующий поиск неудачен. В этом случае необходимо уменьшить значения приращений и повторить исследующий поиск.
Рисунок 1.19. Исследующий поиск (слева - удачный, справа - неудачный) - точка старого базиса - точка нового базиса
3) Из точки нового базиса может быть: · продолжен исследующий поиск со старыми или новыми значениями приращений (шаг 2) алгоритма)
· проведен поиск по образцу по алгоритму:
Рисунок 1.20. Поиск по образцу (слева - удачный, справа - неудачный)
В точке значение функции не вычисляется, из этой точки проводится исследующий поиск, в результате которого получается точка . Если , то точка становится точкой нового базиса, а - точкой старого базиса.
Если , то поиск по образцу считается неудачным, точки - аннулируются, при этом точка остается точкой нового базиса, а - точкой старого базиса.
4) Процедура 3) повторяется до выполнения критерия окончания счета.
Основной критерий окончания метода:
Дополнительные критерии окончания метода: l при выполнении предельного числа итераций: l при однократном или двукратном одновременном выполнении двух условий:
где - малое положительное число.
Алгоритм работы метода конфигураций схематически изображен на рис. 1.21
Рисунок 1.21. Диаграмма работы метода конфигураций
2
Практическая часть
Создание любого программного изделия, как и любая другая деятельность, делится на несколько взаимосвязанных этапов. В данном случае мы имеем дело с построением некоторой системы, которая будет выполнять определенные задачи. Значит, нам нужно определить, какие средства нам понадобятся для выполнения этих задач.
Во-первых, разрабатываемая система должна иметь определенную структуру, которая определяет механизм ее работы. Для определения структуры необходимо рассмотреть современные виды архитектуры, использующиеся в сходных проектах. Затем нужно сравнить эти модели и выбрать на основании этого сравнения такую модель, которая в наибольшей степени будет соответствовать предъявляемым требованиям.
После выбора вида архитектуры программы, требуется выбрать программные средства, которые будут использоваться в проекте для реализации программных механизмов. От выбора программных средств зависит то, какая квалификация потребуется для дальнейшей работы над проектом, а также для его внедрения, и, в некоторых случаях, использования.
После выбора программных средств, производится непосредственно разработка архитектуры системы и написание текстов программ, составляющих ее, написание текстов документации.
2.1 Анализ архитектур
В программировании архитектурой программного продукта является совокупность общих принципов работы программ, входящих в программный продукт и принципов взаимосвязи этих программ в единое целое. Архитектура программного продукта определяется на ранней стадии разработки, желательно до того, как будут выбраны конкретные программные среды, в которых будут разрабатываться составные части проекта, хотя не исключена ситуация, когда программная среда определена заранее, и требуется разрабатывать программы уже в предопределенных условиях.
В случае, когда сначала разрабатывается архитектура программы, то затем выбор программных сред ведется, как правило, с учетом приспособленности этих сред не только к решению данной задачи в общем, но и к построению программного продукта в рамках выбранной архитектуры.
При выборе архитектуры программного продукта нужно руководствоваться тем, какие задачи необходимо решить с его помощью. Использование какой-либо одной архитектуры во всех проектах не оправдано, так как различные архитектуры лучше способствуют решению различных классов задач, и, если какая-либо архитектура покажет себя хорошо при решении одного класса задач, то нельзя с уверенностью сказать, что удастся с ее помощью эффективно решить и любую другую задачу.
Правильно выбранная архитектура способствует прежде всего облегчению работ над проектом различными путями, а также придает программному продукту целостный вид, простоту и удобство в использовании.
В настоящее время существует несколько основных типовых архитектур, которые широко применяются в разработке программных продуктов в мире.
Локальная архитектура подразумевает монолитную программу, в которой все вычисления производятся в одном общем программном модуле.
Клиент-серверная архитектура содержит две части - клиент, где происходит диалог с пользователем и сервер, где производится обработка данных.
При большом количестве данных используется многозвенная архитектура, когда в клиент-серверной модели добавляются дополнительные серверы, которые обслуживают центральный сервер.
Сервисно-ориентированная архитектура, которая опирается на набор стандартизированных сервисов, взаимодействующих между собой.
Архитектура одноранговой сети характеризуется наличием нескольких программ, выполняющих сходные функции и соединяющихся между собой для взаимного обмена информацией.
2.1.1 Локальная архитектура
Локальная архитектура подразумевает, что все механизмы работы программного продукта собираются воедино в одном исполняемом процессе, который выполняет любые действия, связанные с выполнением задачи. Сюда входят и процессы ввода-вывода и пользовательский интерфейс, и выполнение необходимых расчетов, и обработка данных, и все остальное, что требуется для работы.
Данная архитектура является старейшей из рассматриваемых архитектур. По этой модели было составлено очень большое количество программ, и люди продолжают создавать новые программы каждый день. Такую популярность локальная архитектура имеет потому, что обладает рядом неоспоримых достоинств.
Так как программный продукт в рамках локальной архитектуры создается в виде одной монолитной части, то при этом почти всегда используется небольшой набор программных средств, с которыми разработчик хорошо знаком. Такая простота позволяет достичь высокой прозиводительности труда в небольших проектах за счет низких затрат на обучение.
Также, простота локальной архитектуры позволяет достичь высокой надежности системы ввиду акцентирования внимания на разработке самих алгоритмов. Построеный таким образом программный продукт характеризуется, как правило, низкими затратами на развертывание и сопровождение.
Локальная архитектура имеет и недостатки. В первую очередь приходится говорить о плохой масштабируемости архитектуры. При разработке крупных проектов остро встают вопросы недостатка вычислительной мощности или функций централизации, которые локальная система, работающая только единой частью, обеспечить не в состоянии. Это объясняет развитие других архитектур, более современных и обладающих большими возможностями.
Несмотря на свои недостатки, локальная модель архитектуры до сих пор широко применяется на практике и в настоящее время и наверняка будет применяться и в будущем.
2.1.2 Клиент-серверная архитектура
Клиент-серверная архитектура представляет собой совокупность серверной части и клиентской части программного продукта.
Клиентская часть отвечает за работу пользовательского интерфейса, а серверная часть отвечает за централизованное хранение и обработку данных. Остальные функции, включая обработку данных, могут быть реализованы как в серверной, так и в клиентской части.
Клиент-серверная архитектура имеет несомненное преимущество в централизации хранения данных, что позволяет реализовывать проекты, связанные с обработкой одного и того же набора данных несколькими пользователями одновременно, сохраняя при этом монолитность данных с помощью правил контроля доступа. Поэтому широчайшее распространение клиент-серверная архитектура получила в сфере обработки баз данных, где требуются как раз такие характеристики.
Программы-клиенты и программы-серверы могут разрабатываться с использованием схожих программных средств, а могут и с помощью различных средств, что обуславливается предъявляемыми требованиями. В любом случае, две составляющие части должны связываться между собой по установленным правилам, которые называются интерфейсами.
Такая организация труда позволяет разделить разработку на две части, разделенные правилами интерфейсов, и эти части отдать на разработку разным командам разработчиков, чем существенно повысить производительность труда.
Внедрение программных продуктов, построенных на основе клиент-серверной архитектуры, также делится на внедрение программ-клиентов и программы-сервера, причем сервер нужно внедрить только один раз, а программа-клиент внедряется многократно, в зависимости от числа пользователей системы.
Недостатком клиент-серверной архитектуры является сложность в описании интерфейсов, а также необходимость организации передачи данных между клиентом и сервером. Несмотря на это, достоинства клиент-серверной архитектуры сделали ее одной из наиболее популярных в наше время.
2.1.3 Многозвенная архитектура
При большом числе пользователей программные продукты, созданные по модели клиент-серверной архитектуры, сталкиваются с проблемой высокой нагрузки на сервер, которому приходится обрабатывать все больше запросов.
Для разгрузки сервера применяется трехзвенная архитектура, когда вместо одного сервера, который выполняет запросы к данным и обработку данных, два сервера, сервер приложений, который выполняет процедуры обработки данных, и сервер баз данных, который выполняет операции доступа к базам данных.
Такой подход позволяет организовать крупные вычислительные центры со специализированным оборудованием, разработанным специально для выполнения специфических задач и имеющих на этих классах задач высокую производительность.
При увеличении сложности программного продукта, возможно добавление еще звеньев в эту архитектуру, в результате чего получается четырехзвенная, архитектура, пятизвенная архитектура и т.д.
2.1.4 Сервисно-ориентированная архитектура
OASIS (Организация по распространению открытых стандартов структурированной информации) определяет SOA следующим образом. Сервисно-ориентированная архитектура - это парадигма организации и использования распределенных информационных ресурсов таких как: приложения и данные, находящихся в сфере ответственности разных владельцев, для достижения желаемых результатов потребителем, которым может быть: конечный пользователь или другое приложение.
Архитектура предполагает использование стандартных служб, распределенных по сети, независимых от применяемых в каждом случае платформ и языков программирования. Архитектура не привязана к какой-либо технологии, так как использует множество различных технологий.
Эта многофункциональность делает реализацию программных продуктов в рамках этой архитектуры самостоятельно весьма затратным делом, которое под силу только крупным корпорациям.
Из преимуществ можно отметить сокращение издержек, независимость от конкретных решений и улучшение масштабируемости и управляемости, что позволит внедрять такие программные продукты в масштабах очень крупных проектов.
2.1.5 Архитектура одноранговой сети
Данный тип архитектуры характеризуется наличием сети объектов, имеющих одинаковый статус. Здесь не существует таких понятий, как клиент или сервер, так как все объекты в сети виртуально идентичны.
Особенность одноранговой сети заключается в работе при больших нагрузках. Так как каждый объект является равнозначным участником сети, то и нагрузка на них распределяется равномерно, тем самым существенно увеличивая потенциальную мощность сети. Мощность при этом может достигать величин, сравнимых с мощьностями современных суперкомпьютеров, это позволяет использовать одноранговые сети в крупных вычислительных проектах, требующих больших вычислительных затрат.
Хотя все узлы сети виртуально равноправны, они не обязательно должны быть одинаковыми, важно лишь, чтобы они отвечали на запросы соответственно предусмотренному протоколу. При этом связь каждого с каждым обычно не реализуется изза больших затрат, а каждый узел в сети обменивается информацией с несколькими соседними узлами.
Из недостатков следует отметить высокую сложность разработки протоколов, самих программ и высокую степень дублирования информации, так как одни и те же сведения передаются и хранятся на нескольких узлах одновременно.
Архитектура одноранговой сети с небольшими изменениями широко используется в различных сетях передачи данных, как локальных, так и глобальных.
2.1.6 Сравнение архитектур
Для выбора архитектуры, которая будет оптимальной для лабораторного практикума, необходимо сформировать перечень основных требований к практикуму.
Так как имеющиеся трудовые ресурсы ограничены, то при разработке практикума имеет значение простота разработки по данной архитектуре. Здесь с лучшей стороны себя покажет локальная архитектура, после нее идет клиент-серверная, состоящая из двух частей, затем идут другие, более сложные архитектуры.
Так же нужно учитывать возможные затраты, связанные с установкой и использованием лабораторного практикума. Они будут зависеть от того, насколько простой будет архитектура практикума. Это связано с трудоемкостью установки программы на отдельно взятое рабочее место.
Также эти затраты связаны с масштабируемостью программного продукта, то есть способностью с небольшими затратами увеличить число используемых рабочих мест при наличии уже настроенных рабочих мест. Это тот момент, когда многозвенные архитектуры могут дать преимущество при правильном использовании.
Пр
Вывод
В разделе «Охрана труда и безопасность жизнедеятельности» были рассмотрены наиболее существенные в бытовых условиях вредные воздействия, оказываемые вычислительной техникой, в частности компьютерами, на организм человека. Были рассмотрены основные пути борьбы с этими воздействиями и соответствующие установленные нормативы на различные виды этих воздействий.
При соблюдении этих нормативов и применении рассмотренных мер противодействия вредным воздействиям, эти воздействия можно привести в рамки нормативов, либо свести к минимуму, либо вовсе исключить.
Эти действия позволят повысить производительность труда, снизить риски развития профзаболеваний, укрепить здоровье работников, а также уменьшить общее число возникающих в результате вредных воздействий внештатных ситуаций и ущерб, наносимый вследствие возникновения таких ситуаций.В ходе настоящей дипломной работы разработан компьютерный лабораторный практикум по курсу «Теория оптимизации», в возможности которого входит: l Предоставление обучаемым графической иллюстрации работы методов оптимизации l Работа с запрограммированными методами первого, второго и нулевого порядков l Ведение протокола работы l Работа в локальных сетях и через Интернет l Предоставление справочной информации по запросу l Централизованность программ и данных
Практикум разработан в соответствии с клиент-серверной моделью, что позволило обеспечить баланс между возможностями программы и затратами на ее разработку.
Практикум разработан с использованием свободно распространяемого программного обеспечения и обладает хорошей переносимостью с одной аппаратно-программной платформы на другую, благодаря использованию стандартных программных средств.
Кроме того, использование свободно распространяемых программных средств позволило обойтись без значительных инвестиций в разработку программы, а также исключить зависимость разработанного практикума от дорогостоящих программных продуктов в процессе эксплуатации.
Кроме того, поизведен расчет экономических показателей проекта, а также проанализированы основные вредные воздействия на организм человека при использовании компьютерной техники в учебном процессе и при разработке компьютерных программ.
Разработанный практикум предоставляет новые возможности визуализации алгоритмов оптимизации функций многих переменных, а также может быть размещен на сайте в интернете в комплексе учебных пособий, как составная часть учебного процесса в рамках удаленного обучения.