Автор работы: Пользователь скрыл имя, 01 Мая 2013 в 14:33, реферат
Жизненный цикл проекта создания интернет - магазина начинается в момент принятия решения о его создании и заканчивается в момент выведения его из эксплуатации.
Существует международный стандарт, регламентирующий жизненный цикл информационных систем — ISO/IEC 12207 «Standard for Information Technology», а также ГОСТ 34.601-90 «Автоматизированные системы. Стадии создания».
PHP имеет встроенные библиотеки для выполнения многих задач, связанных с Web. Возможности PHP включают формирование изображений, файлов PDF, роликов Flash, а также текстовых данных - XHTML и других XML-файлов. PHP позволяет осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе сервера, организуя, таким образом, кеш динамического содержания, расположенный на стороне сервера.
Одним из значительных преимуществ PHP является поддержка широкого круга баз данных: IBM DB2, Informix, InterBase, MySQL, Oracle, Sybase и других.
PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS X и многих других. Таким образом, выбирая PHP, предоставляется свобода выбора операционной системы и web-сервера.
В области веб-программирования PHP — один из популярнейших скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. В настоящее время поддерживается подавляющим большинством представителей хостинга.
JavaScript
JavaScript — это интерпретируемый язык программирования, предназначенный для написания сценариев, работающих как на стороне клиента, так и на стороне сервера.
Программа на JavaScript встраивается непосредственно в исходный текст HTML-документа и интерпретируется браузером по мере загрузки этого документа. С помощью JavaScript можно динамически изменять текст загружаемого HTML-документа и реагировать на события, связанные с действиями посетителя или изменениями состояния документа или окна.
JavaScript обладает рядом свойств объектно-ориентированного языка, но благодаря прототипированию поддержка объектов в нём отличается от традиционных языков.
Схема графического диалога пользователя в интернет-гипермаркете представлена на рис. 2.6.
Процесс посещения клиентом интернет - гипермаркета:
Рис. 2.6. Схема графического диалога пользователя в интернет-гипермаркете
В работе рассматривается задача нахождения маршрутов развоза товаров на объекты заданного региона. Разветвленная сеть автодорог разного качества, сотни объектов развоза, большой разброс расстояний между поставщиками и получателями – все эти показатели усложняют нахождение маршрута доставки товаров. В связи с этим, увеличению прибыли интернет - гипермаркета способствует комплексное решение в будущем таких задач как:
В ходе решения задачи маршрутизации находится оптимальный по заданному критерию (суммарному расстоянию, времени, стоимости доставки) порядок объезда получателей для каждого маршрута. После решения задачи формируются маршруты и расписание движения для автомобиля.
Задача маршрутизации реализуется набором алгоритмов, каждый из которых осуществляет решение задачи коммивояжера. Коммивояжер (распространитель товаров) должен объехать всех получателей товаров. Он выезжает из некоторого пункта и должен вернуться в него же в конце путешествия. Предполагается, что коммивояжер никогда не бывает дважды в одном пункте. Расстояния между получателями товаров задаются с помощью квадратной матрицы расстояний С = [с(i, j)] размерности k x k, где k – количество получателей товаров, с(i, j) – расстояние от получателя i до получателя j. Отметим, что, в общем случае, матрица расстояний не является симметричной. Диагональные элементы матрицы расстояний равны нулю. Задача коммивояжера состоит в таком объезде всех получателей, чтобы суммарное пройденное расстояние было минимальным. Следует выбрать один оптимальный маршрут из (k-1)! возможных.
Если количество получателей невелико: (k < 13), то решение может быть получено с использованием метода ветвей и границ.
Постановка задачи
Классическая постановка задачи о коммивояжере выглядит следующим образом:Имеется N городов, которые должен обойти коммивояжер с минимальнымизатратами. При этом на его маршрут накладывается два ограничения:
· маршрут должен быть замкнутым, то есть коммивояжер должен вернуться в тот город, из которого он начал движение;
· в каждом из городов коммивояжер должен побывать точно один раз, то
есть надо обязательно обойти все города, при этом не побывав ни в одном городе дважды.
Для расчета затрат существует матрица условий, содержащая затраты на переход
из каждого города в каждый, при этом считается, что можно перейти из любого
города в любой, кроме того же самого (в матрице как бы вычеркивается
диагональ). Целью решения является нахождения маршрута, удовлетворяющего всем
условиям и при этом имеющего минимальную сумму затрат.
Для практической
реализации идеи метода ветвей и границ
применительно к задаче коммивояжера
нужно найти метод определения
нижних границ подмножества и разбиения
множества гамильтоновых
Алгоритм решения
Метод ветвей
и границ относится к методам
дискретной оптимизации. В сущности,
это полный перебор решений, который
оптимизируется за счет того, что при
переборе вариантов по определенным
признакам отсекаются неоптимальные
множества перебора. Так как количество
вершин от уровня к уровню возрастает
в факториальной прогрессии, то отсечение
вершин верхних уровней значительно
сокращает общее число
Основные шаги решения задачи коммивояжера этим методом:
Математическая модель задачи
N - число городов.
С = [с(i, j)] - квадратная матрица расстояний,
Xi j - матрица переходов с компонентами:
Xi j = 1, если коммивояжер совершает переход из i-го города в j-й,
Xi j = 0, если не совершает перехода,
где i, j = 1..N и i≠j.
Целевая функция задачи состоит в минимизации:
(1)
Если считать получателей вершинами графа, а коммуникации (i,j) – его дугами, то требование нахождения минимального пути, проходящего один и только один раз через каждый пункт, и возвращения обратно, можно рассматривать как нахождение на графе гамильтонова контура минимальной длины. Введем следующие ограничения:
Ui - Uj + N × Xij ≤ N-1, где i, j = 1..N, i≠j (4)
Условия (1, 2, 3) в совокупности обеспечивают, что каждая переменная xij равна или нулю, или единице. При этом ограничения (1), (2) выражают условия, что коммивояжер побывает в каждом городе один раз в него прибыв (ограничение (1)), и один раз из него выехав (ограничение (2)).
Условие
(4) обеспечивает замкнутость
Доказательство, что модель (1-4) описывает задачу о коммивояжере:
Условие (2) означает, что коммивояжер из каждого города выезжает только один раз; условие (3) - въезжает в каждый город только один раз; условие (4) - обеспечивает замкнутость маршрута, содержащего N городов, и не содержащего замкнутых внутренних петель.
Алгоритм Литтла для нахождения минимального гамильтонова контура для графа с n вершинами можно сформулировать в виде следующих правил:
1. Находим в каждой строке матрицы минимальный элемент и вычитаем его из всех элементов соответствующей строки. Получим матрицу, приведенную по строкам, с элементами
.
2. Если в матрице , приведенной по строкам, окажутся столбцы, не содержащие нуля, то приводим ее по столбцам. Для этого в каждом столбце матрицы выбираем минимальный элемент , и вычитаем его из всех элементов соответствующего столбца. Получим матрицу
,
каждая строка и столбец, которой содержит хотя бы один нуль. Такая матрица называется приведенной по строкам и столбцам.
3. Суммируем элементы и , получим константу приведения
,
которая будет нижней границей множества всех допустимых гамильтоновых контуров, то есть
.
4. Находим
степени нулей для приведенной
по строкам и столбцам матрицы.
.
5. Выбираем дугу , для которой степень нулевого элемента достигает максимального значения
.
6. Разбиваем множество всех гамильтоновых контуров на два подмножества и . Подмножество гамильтоновых контуров содержит дугу , - ее не содержит. Для получения матрицы контуров , включающих дугу , вычеркиваем в матрице строку и столбец . Чтобы не допустить образования негамильтонова контура, заменим симметричный элемент на знак «∞».
7. Приводим
матрицу гамильтоновых
.
8. Находим
множество гамильтоновых
9. Делаем
приведение матрицы
.
10. Сравниваем нижние границы подмножества гамильтоновых контуров и . Если , то дальнейшему ветвлению в первую очередь подлежит множество . Если же , то разбиению подлежит множество .
Процесс разбиения множеств на подмножества сопровождается построением дерева ветвлений.
11. Если
в результате ветвлений
12. Сравниваем длину гамильтонова
контура с нижними границами
оборванных ветвей. Если длина
контура не превышает их
Программная реализация:
Входными данными является сгенерированный граф, он же матрица расстояний mass[]. Происходит инициализация матрицы расстояний. Далее формируем матрицу приведения. Выбираем 2 ветви по которым будет продолжен путь. Приводим к матрице весов, сравниваем нижние границы двух ветвей, получаем текущее решение и формируем маршрут.
Информация о работе Этапы жизненного цикла проекта автоматизации