Xreferat.com » Рефераты по информатике и программированию » Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

оптимизации и численные методы"" width="17" height="19" align="BOTTOM" border="0" />- малое положительное число.

Алгоритм работы метода Нелдера-Мида схематически изображен на рис. 1.15


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Диаграмма работы метода Нелдера-Мида


Метод случайного поиска (адаптивный метод случайного спуска)

Алгоритм метода:

1) Задается начальная точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"и начальное значение параметра Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

2) Строится система пробных точек (обычно 5-10 точек):


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


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

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

3) Для каждой пробной точки вычисляется значение функции Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"и выбирается наилучшаяРазработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", для которой Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы". Выбор может осуществляться как автоматически, так и при участии пользователя.

4) Проверяется условие:


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


если условие выполнено, то система пробных точек считается удачной, далее возможно два продолжения алгоритма:


4.1) Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


4.2)  в направлении, соединяющем точки и Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" делается ускоряющий шаг:


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


в этом случае, если оказывается, что Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", принимается Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Удачная система пробных точек


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


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Неудачная система пробных точек (слева - возможна повторная попытка, справа - необходимо уменьшить радиус)


5) Процедура 2)-4) повторяется до выполнения критерия окончания счета.

Основной критерий окончания метода: Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Дополнительные критерии окончания метода:

при выполнении предельного числа итераций: Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

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


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


где Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- малое положительное число.

Алгоритм работы метода случайного поиска схематически изображен на рис. 1.18


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Диаграмма работы метода случайного поиска


Метод конфигураций (Хука-Дживса)

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

Процесс поиска минимума функции всегда начинается с исследующего поиска.

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

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

Алгоритм метода:

1) Задается начальная точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"и начальные значение приращенийРазработка компьютерного лабораторного практикума "Теория оптимизации и численные методы". Точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" называется точкой старого базиса.

2) Проводится исследующий поиск, в результате которого каждая координата новой точки Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" вычисляется по алгоритму:


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


В результате исследующего поиска получается точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы".

Если при этомРазработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", то Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- точка нового базиса.

Если Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", то исследующий поиск неудачен. В этом случае необходимо уменьшить значения приращений Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" и повторить исследующий поиск.


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Исследующий поиск (слева — удачный, справа - неудачный) Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- точка старого базиса Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- точка нового базиса

3) Из точки нового базиса может быть:

продолжен исследующий поиск со старыми или новыми значениями приращений (шаг 2) алгоритма)

проведен поиск по образцу по алгоритму:


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Поиск по образцу (слева — удачный, справа - неудачный)

В точке Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" значение функции не вычисляется, из этой точки проводится исследующий поиск, в результате которого получается точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы". Если Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", то точка Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" становится точкой нового базиса, а - точкой старого базиса.

Если Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы", то поиск по образцу считается неудачным, точки Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- аннулируются, при этом точка остается точкой нового базиса, а Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- точкой старого базиса.

4) Процедура 3) повторяется до выполнения критерия окончания счета.

Основной критерий окончания метода:


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


Дополнительные критерии окончания метода:

при выполнении предельного числа итераций: Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

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


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"


где Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"- малое положительное число.

Алгоритм работы метода конфигураций схематически изображен на рис. 1.21


Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы"

Рисунок 3.1. Диаграмма работы метода конфигураций


Практическая часть


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

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

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

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


Анализ архитектур


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

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

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

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

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

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

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

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

Сервисно-ориентированная архитектура, которая опирается на набор стандартизированных сервисов, взаимодействующих между собой.

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


Локальная архитектура

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

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

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

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

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

Несмотря на свои недостатки, локальная модель архитектуры до сих пор широко применяется на практике и в настоящее время и наверняка будет применяться и в будущем.


Клиент-серверная архитектура

Клиент-серверная архитектура представляет собой совокупность серверной части и клиентской части программного продукта.

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

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

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

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

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

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


Многозвенная архитектура

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

Для разгрузки сервера применяется трехзвенная архитектура, когда вместо одного сервера, который выполняет запросы к данным и обработку данных, два сервера, сервер приложений, который выполняет процедуры обработки данных, и сервер баз данных, который выполняет операции доступа к базам данных.

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

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

Сервисно-ориентированная архитектура

OASIS (Организация по распространению открытых стандартов структурированной информации) определяет SOA следующим образом. Сервисно-ориентированная архитектура – это парадигма организации и использования распределенных информационных ресурсов таких как: приложения и данные, находящихся в сфере ответственности разных владельцев, для достижения желаемых результатов потребителем, которым может быть: конечный пользователь или другое приложение.

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

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

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


Архитектура одноранговой сети

Данный тип архитектуры характеризуется наличием сети объектов, имеющих одинаковый статус. Здесь не существует таких понятий, как клиент или сервер, так как все объекты в сети виртуально идентичны.

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

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

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

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


Сравнение архитектур

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

Так как имеющиеся трудовые ресурсы ограничены, то при разработке практикума имеет значение простота разработки по данной архитектуре. Здесь с лучшей стороны себя покажет локальная архитектура, после нее идет клиент-серверная, состоящая из двух частей, затем идут другие, более сложные архитектуры.

Так же нужно учитывать возможные затраты, связанные с установкой и использованием лабораторного практикума. Они будут зависеть от того, насколько простой будет архитектура практикума. Это связано с трудоемкостью установки программы на отдельно взятое рабочее место.

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

Производительность системы зависит от рационального использования ресурсов аппаратной базы. При этом получают преимущества эффективные решения, использующие ресурсы всей имеющейся техники, за счет распределения вычислений. Централизация упрощает работу с системой, позволяя получать все результаты работы в одном месте, тем самым практически ликвидируя расходы на обмен информацией. Также имеет значение достоверность полученных результатов, то есть противодействие фальсификации результатов работы пользователями в корыстных целях. Здесь централизованные системы имеют преимущество, благодаря тому, что данные хранятся в одном защищенном хранилищеи проще организовать их защиту от изменения посторонними лицами. Сведем сведения о рассмотренных архитектурах в таблицу:


Таблица 4.8. Сравнение программных архитектур

Архитектура Критерий Локальная Клиент-серверная Многозвенная SOA Одноранговая сеть
Затраты на разработку низкие средние высокие очень высокие высокие
Затраты на установку низкие сердние высокие высокие средние
Затраты на использование низкие низкие средние высокие высокие
Масштабируемость нет средняя хорошая хорошая хорошая
Рациональность исп. ресурсов высокая средняя высокая высокая низкая
Централизация нет есть есть есть ограни-ченно
Защита достоверности нет есть есть есть нет

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


Анализ программных средств


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

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


Свободное программное обеспечение

В дипломном проекте используется свободное (свободно распространяемое) программное обеспечение. В последнее время в мире все большее развитие получило движение за свободное программное обеспечение. «Свободное программное обеспечение» означает свободу, а не цену. «Свобода ПО» означает право пользователя свободно запускать, копировать, распространять, изучать, изменять и улучшать его.

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

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

Основными общественными организациями, продвигающими свободное программное обеспечение, являются международные Free software foundation (FSF) и проект GNU, цель которого — создание полностью свободной операционной системы. С большим количеством материалов по данной теме можно ознакомиться на сайтах этих организаций в интернете.


Серверные программные средства

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

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

Преимущества и недостатки этих двух подходов представлены для сравнения в таблице 2.2.


Таблица 4.8 Преимущества и недостатки готовых решений

Характеристика Разработка своими силами Использование готовых решений
Трудоемкость Высокая Низкая
Надежность Повышенная Низкая
Скорость работы Высокая Низкая
Требуемые знания Протоколы взаимодействия ОС Знание используемого продукта
Использование памяти Практически отсутствует Используется дополнительная память

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

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

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


Таблица 4.8 Сравнение HTTP-серверов

Характеристика Apache Microsoft IIS ngnix
Разработчик Apache Microsoft Игорь Сысоев
Условия распространения Свободно Совместно с MS Windows Свободно
Настройка Конфигурационные файлы Графический интерфейс Конфигурационные файлы
Трудоемкость настройки Высокая, требуются специальные знания Средняя Высокая, требуются специальные знания
Операционная система UNIX-подобные Microsoft Windows UNIX-подобные

Как мы видим, Apache и ngnix более универсальны, но требуют более тщательной настройки. В дипломной работе используется веб-сервер Apache, но возможен переход и к другому веб-серверу, если он будет поддерживать используемые технологии.

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

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: