Рисунок 1.17. Неудачная система пробных точек (слева - возможна повторная попытка, справа - необходимо уменьшить радиус)
5) Процедура 2)-4) повторяется до выполнения критерия окончания счета.
Основной критерий окончания метода:
Дополнительные критерии окончания метода:
- при выполнении предельного числа итераций:
- при однократном или двукратном одновременном выполнении двух условий:
где
- малое положительное число.Алгоритм работы метода случайного поиска схематически изображен на рис. 1.18
Рисунок 1.18. Диаграмма работы метода случайного поиска
Метод представляет собой комбинацию исследующего (исследовательского) поиска с циклическим изменением переменных и ускоряющего поиска по образцу.
Процесс поиска минимума функции всегда начинается с исследующего поиска.
Исследующий поиск осуществляется вдоль координатных направлений, результатом его являются так называемые точки базиса, в которых вычисляется значение функции
.Поиск по образцу осуществляется в направлении, соединяющем де последующие точки базиса. В точках полученных «по образцу» значение функции не вычисляется, они служат лишь для проведения в них исследующего поиска.
Алгоритм метода:
1) Задается начальная точка
и начальные значение приращений . Точка называется точкой старого базиса.2) Проводится исследующий поиск, в результате которого каждая координата новой точки
вычисляется по алгоритму:В результате исследующего поиска получается точка
.Если при этом
, то - точка нового базиса.Если
, то исследующий поиск неудачен. В этом случае необходимо уменьшить значения приращений и повторить исследующий поиск.Рисунок 1.19. Исследующий поиск (слева — удачный, справа - неудачный)
- точка старого базиса - точка нового базиса3) Из точки нового базиса может быть:
· продолжен исследующий поиск со старыми или новыми значениями приращений (шаг 2) алгоритма)
· проведен поиск по образцу по алгоритму:
Рисунок 1.20. Поиск по образцу (слева — удачный, справа - неудачный)
В точке
значение функции не вычисляется, из этой точки проводится исследующий поиск, в результате которого получается точка . Если , то точка становится точкой нового базиса, а - точкой старого базиса.Если
, то поиск по образцу считается неудачным, точки - аннулируются, при этом точка остается точкой нового базиса, а - точкой старого базиса.4) Процедура 3) повторяется до выполнения критерия окончания счета.
Основной критерий окончания метода:
Дополнительные критерии окончания метода:
- при выполнении предельного числа итераций:
- при однократном или двукратном одновременном выполнении двух условий:
где
- малое положительное число.Алгоритм работы метода конфигураций схематически изображен на рис. 1.21
Рисунок 1.21. Диаграмма работы метода конфигураций
Создание любого программного изделия, как и любая другая деятельность, делится на несколько взаимосвязанных этапов. В данном случае мы имеем дело с построением некоторой системы, которая будет выполнять определённые задачи. Значит, нам нужно определить, какие средства нам понадобятся для выполнения этих задач.
Во-первых, разрабатываемая система должна иметь определённую структуру, которая определяет механизм её работы. Для определения структуры необходимо рассмотреть современные виды архитектуры, использующиеся в сходных проектах. Затем нужно сравнить эти модели и выбрать на основании этого сравнения такую модель, которая в наибольшей степени будет соответствовать предъявляемым требованиям.
После выбора вида архитектуры программы, требуется выбрать программные средства, которые будут использоваться в проекте для реализации программных механизмов. От выбора программных средств зависит то, какая квалификация потребуется для дальнейшей работы над проектом, а также для его внедрения, и, в некоторых случаях, использования.
После выбора программных средств, производится непосредственно разработка архитектуры системы и написание текстов программ, составляющих её, написание текстов документации.
В программировании архитектурой программного продукта является совокупность общих принципов работы программ, входящих в программный продукт и принципов взаимосвязи этих программ в единое целое. Архитектура программного продукта определяется на ранней стадии разработки, желательно до того, как будут выбраны конкретные программные среды, в которых будут разрабатываться составные части проекта, хотя не исключена ситуация, когда программная среда определена заранее, и требуется разрабатывать программы уже в предопределённых условиях.
В случае, когда сначала разрабатывается архитектура программы, то затем выбор программных сред ведётся, как правило, с учётом приспособленности этих сред не только к решению данной задачи в общем, но и к построению программного продукта в рамках выбранной архитектуры.
При выборе архитектуры программного продукта нужно руководствоваться тем, какие задачи необходимо решить с его помощью. Использование какой-либо одной архитектуры во всех проектах не оправдано, так как различные архитектуры лучше способствуют решению различных классов задач, и, если какая-либо архитектура покажет себя хорошо при решении одного класса задач, то нельзя с уверенностью сказать, что удастся с её помощью эффективно решить и любую другую задачу.
Правильно выбранная архитектура способствует прежде всего облегчению работ над проектом различными путями, а также придает программному продукту целостный вид, простоту и удобство в использовании.
В настоящее время существует несколько основных типовых архитектур, которые широко применяются в разработке программных продуктов в мире.
Локальная архитектура подразумевает монолитную программу, в которой все вычисления производятся в одном общем программном модуле.
Клиент-серверная архитектура содержит две части — клиент, где происходит диалог с пользователем и сервер, где производится обработка данных.
При большом количестве данных используется многозвенная архитектура, когда в клиент-серверной модели добавляются дополнительные серверы, которые обслуживают центральный сервер.
Сервисно-ориентированная архитектура, которая опирается на набор стандартизированных сервисов, взаимодействующих между собой.
Архитектура одноранговой сети характеризуется наличием нескольких программ, выполняющих сходные функции и соединяющихся между собой для взаимного обмена информацией.