Задачи коммивояжера

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.06.2014
Размер файла 29,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Факультет автоматики и вычислительной техники

Кафедра систем автоматизированного проектирования

Пояснительная записка к курсовой работе

по дисциплине: «Эволюционное моделирование и генетические алгоритмы»

по теме: «Задачи коммивояжера»

Выполнили ст. гр. А-71:

Проверил проф. каф. САПР:

Курейчик В.В. ___________

Таганрог 2014

СОДЕРЖАНИЕ

Введение

1. Математические основы решения задачи коммивояжера

1.1 Основные понятия теории графов

1.2 Формулировка и некоторые свойства решений задачи комивояжера

1.3 Постановка задачи коммивояжера как задачи на графе

1.4 Метод ветвей и границ

2. Разработка и описание алгоритма работы программы

2.1 Описание работы программы

2.2 Текст программы

Заключение

Список используемой литературы

ВВЕДЕНИЕ

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

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

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

1. МАТЕМАТИЧЕСКИЕ ОСНОВЫ РЕШЕНИЕ ЗАДАЧИ КОММИВОЯЖЕРА

1.1 Основные понятия теории графов

Пусть задано некоторое непустое множество Х множество, состоящее из пар элементов множества X. Пары во множестве могут повторяться, и также могут повторяться элементы в парах. Множества Х задают граф 0=(Х, Y).

Элементы множества называют вершинами графа, элементы множества V -- ребрами графа.

Если пары во множестве V повторяются, то граф С называют псевдографом или графом с кратными ребрами.

Если элементы в парах множества не упорядочены, то граф С называют неориентированным графом. Если они упорядочены, то граф О является ориентированным графом или орграфом, а эле¬менты множества V называют дугами.

Графически граф задается в виде точек и линий, их соединяющих.

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

Если вершина является началом или концом ребра, то верши¬на и ребро называются инцидентными.

Степенью вершины называется число инцидентных ей ребер. Вершина, степень которой равна нулю, называется изолированной. Вершина, степень кото¬рой равна единице, называется висячей или тупиковой.

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

Цепью называется маршрут, в котором все ребра попарно раз¬личны.

Простой называется цепь, в которой все вершины попарно различны.

Циклом (простым циклом) называется цепь (простая цепь), начало и конец которой совпадают.

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

Расстоянием между вершинами связного графа называется длина самой короткой цепи, соединяющей вершины.

Диаметром графа называется максимальное расстояние между его вершинами.

Деревом называется связный граф без циклов

Граф называется регулярным степени i, если все его вершины имеют степень i.

Граф называется полным, если любые две его вершины соеди¬нены ребром. Лесом называется граф без циклов, т.е. совокупность деревьев.

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

Гамильтоновой цепью называется простая цепь, содержащая все вершины графа.

Гамильтоновым циклом называется простой цикл, содержащий все вершины графа.

В ориентированном графе каждая дуга имеет направление, показанное стрелкой

Маршрут в ориентированном графе часто называют контуром, а цепь -- путем.

1.2 Формулировка и некоторые свойства решений задачи коммивояжера

Классическая постановка задачи о коммивояжере выглядит следующим образом:

Имеется N городов, выезжая из исходного города А1, коммивояжер должен побывать во всех городах по 1 разу и вернуться в город А1. Задача заключается в определении последовательности объезда городов, при которой коммивояжеру требуется минимизировать некоторый критерий эффективности: стоимость проезда, время пути, суммарное расстояние и т.д.

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

Чтобы привести задачу к научному виду, введём некоторые термины. Итак, города перенумерованы числами jОТ=(1,2,3..n). Тур коммивояжера может быть описан циклической перестановкой t=(j1,j2,..,jn,j1), причём все j1..jn - разные номера; повторяющийся в начале и в конце j1, показывает, что перестановка зациклена. Расстояния между парами вершин Сij образуют матрицу С. Задача состоит в том, чтобы найти такой тур t, чтобы минимизировать функционал

Относительно математизированной формулировки задачи коммивояжера уместно сделать два замечания.

Во-первых, в постановке Сij означали расстояния, поэтому они должны быть неотрицательными, т.е. для всех jОТ:

Сijі_;--Cjj=?

(последнее равенство означает запрет на петли в туре), симметричными, т.е. для всех i,j:

Сij=--Сji.--

и удовлетворять неравенству треугольника, т.е. для всех:

Сij+--СjkіCik--

1.3 Постановка задачи коммивояжера как задачи на графе

Задача коммивояжера может быть сформулирована как задача на графе в следующей постановке: построить граф G(X, A), вершины которого соответствуют городам в зоне коммивояжера, а дуги отображают коммуникации, соединяющие пары городов. Пусть длина a(х, у) > 0 каждой дуги (х, у) є А равна расстоя¬нию, стоимости или времени. Контур, включающий каждую вершину графа G хотя бы один раз, называется маршрутом коммивояжера. Контур, включающий каждую вершину графа G ровно один раз, называется гамильтоновым контуром (по имени ирландского математика Вильяма Роуана Гамильтона, ко¬торый в 1859 г. первым начал изучение этих задач).

Города - это вершины графа.

Дороги между городами - это ориентированные ребра графа.

Длина соответствующей дороги - это вес ребра.

Граф должен быть полным, т.е. в нем имеются все возможные ребра. Если граф не является полным, то его можно дополнить недостающими ребрами с весом =

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

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

1.4 Метод ветвей и границ

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

Общая идея тривиальна: нужно разделить огромное число перебираемых вариантов на классы и получить оценки (снизу - в задаче минимизации, сверху - в задаче максимизации) для этих классов, чтобы иметь возможность отбрасывать варианты не по одному, а целыми классами. Трудность состоит в том, чтобы найти такое разделение на классы (ветви) и такие оценки (границы), чтобы процедура была эффективной. Нам будет удобнее трактовать Сij как стоимость проезда из города i в город j. Допустим, что добрый мэр города j издал указ выплачивать каждому въехавшему в город коммивояжеру 5 долларов. Это означает, что любой тур подешевеет на 5 долларов, поскольку в любом туре нужно въехать в город j. Но поскольку все туры равномерно подешевели, то прежний минимальный тур будет и теперь стоить меньше всех. Добрый же поступок мэра можно представить как уменьшение всех чисел j-го столбца матрицы С на 5. Если бы мэр хотел спровадить коммивояжеров из j-го города и установил награду за выезд в размере 10 долларов, это можно было бы выразить вычитанием 10 из всех элементов j-й той строки. Это снова бы изменило стоимость каждого тура, но минимальный тур остался бы минимальным. Итак, доказана следующая лемма. Вычитая любую константу из всех элементов любой строки или столбца матрицы С, мы оставляем минимальный тур минимальным. Для алгоритма нам будет удобно получить побольше нулей в матрице С, не получая там, однако, отрицательных чисел. Для этого мы вычтем из каждой строки ее минимальный элемент (это называется приведением по строкам, а затем вычтем из каждого столбца матрицы, приведенной по строкам, его минимальный элемент, получив матрицу, элементов матрицы С. Подчеркивание элемента означает, что в туре из i-го элемента идут именно в j-тый. Для тура из шести городов подчеркнутых элементов должно быть шесть, так как в туре из шести городов есть шесть ребер. Каждый столбец должен содержать ровно один подчеркнутый элемент (в каждый город коммивояжер въехал один раз), в каждой строке должен быть ровно один подчеркнутый элемент (из каждого города коммивояжер выехал один раз); кроме того, подчеркнутые элементы должны описывать один тур, а не несколько меньших циклов. Сумма чисел подчеркнутых элементов есть стоимость тура. Стоимость равна 36, это тот минимальный тур, который получен лексикографическим перебором.

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

Теперь приступим к ветвлению. Для этого проделаем шаг оценки нулей. Рассмотрим нуль в клетке (1,2) приведенной матрицы. Он означает, что цена перехода из города 1 в город 2 равна 0. А если мы не пойдем из города 1 в город 2? Тогда все равно нужно въехать в город 2 за цены, указанные во втором столбце; дешевле всего за 1 (из города 6). Далее, все равно надо будет выехать из города 1 за цену, указанную в первой строке; дешевле всего в город 3 за 0. Суммируя эти два минимума, имеем 1+0=1: если не ехать «по нулю» из города 1 в город 2, то надо заплатить не меньше 1. Это и есть оценка нуля. Оценки всех нулей поставлены правее и выше нуля (оценки нуля, равные нулю, не ставились).

Выберем максимальную из этих оценок (в примере есть несколько оценок, равных единице, выберем первую из них, в клетке (1,2)).

Итак, выбрано нулевое ребро (1,2). Разобьем все туры на два класса - включающие ребро (1,2) и не включающие ребро (1,2). Про второй класс можно сказать, что придется приплатить еще 1, так что туры этого класса стоят 35 или больше.

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

Дополнительно в уменьшенной матрице поставлен запрет в клетке (2,1), т. к. выбрано ребро (1,2) и замыкать преждевременно тур ребром (2,1) нельзя. Уменьшенную матрицу можно привести на 1 по первому столбцу, так что каждый тур, ей отвечающий, стоит не меньше 35

Кружки представляют классы: верхний кружок - класс всех туров; нижний левый - класс всех туров, включающих ребро (1,2); нижний правый - класс всех туров, не включающих ребро (1,2). Числа над кружками - оценки снизу.

Продолжим ветвление в положительную сторону: влево - вниз. Для этого оценим нули в уменьшенной матрице C[1,2]. Максимальная оценка в клетке (3,1) равна 3. Таким образом, оценка для правой нижней вершины есть 35+3=38. Для оценки левой нижней вершины нужно вычеркнуть из матрицы C[1,2] еще строку 3 и столбец 1, получив матрицу C[(1,2),(3,1)] В эту матрицу нужно поставить запрет в клетку (2,3), так как уже построен фрагмент тура из ребер (1,2) и (3,1), т.е. [3,1,2], и нужно запретить преждевременное замыкание (2,3).

Оцениваем теперь нули в приведенной матрице C[(1,2),(3,1)] нуль с максимальной оценкой 3 находится в клетке (6,5). Отрицательный вариант имеет оценку 38+3=41. Для получения оценки положительного варианта убираем строчку 6 и столбец 5, ставим запрет в клетку (5,6). Эта матрица неприводима. Следовательно, оценка положительного варианта не увеличивается.

Оценивая нули в матрице, получаем ветвление по выбору ребра (2,6), отрицательный вариант получает оценку 36+3=39, а для получения оценки положительного варианта вычеркиваем вторую строку и шестой столбец, получая матрицу.

В матрицу надо добавить запрет в клетку (5,3), ибо уже построен фрагмент тура [3,1,2,6,5] и надо запретить преждевременный возврат (5,3). Теперь, когда осталась матрица 2х2 с запретами по диагонали, достраиваем тур ребрами (4,3) и (5,4). Мы не зря ветвились, по положительным вариантам. Сейчас получен тур: 1>2>6>5>4>3>1 стоимостью в 36. При достижении низа по дереву перебора класс туров сузился до одного тура, а оценка снизу превратилась в точную стоимость.

Итак, все классы, имеющие оценку 36 и выше, лучшего тура не содержат. Поэтому соответствующие вершины вычеркиваются. Вычеркиваются также вершины, оба потомка которой вычеркнуты. Мы колоссально сократили полный перебор. Осталось проверить, не содержит ли лучшего тура класс, соответствующий матрице С[Not(1,2)], т.е. приведенной матрице С с запретом в клетке 1,2, приведенной на 1 по столбцу (что дало оценку 34+1=35). Оценка нулей дает 3 для нуля в клетке (1,3), так что оценка отрицательного варианта 35+3 превосходит стоимость уже полученного тура 36 и отрицательный вариант отсекается.

Для получения оценки положительного варианта исключаем из матрицы первую строку и третий столбец, ставим запрет (3,1) и получаем матрицу. Эта матрица приводится по четвертой строке на 1, оценка класса достигает 36 и кружок зачеркивается. Поскольку у вершины «все» убиты оба потомка, она убивается тоже. Вершин не осталось, перебор окончен. Мы получили тот же минимальный тур, который показан подчеркиванием.

2. РАЗРАБОТКА И ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ

2.1 Описание работы программы

Программа реализована в среде Borland Delphi 7.0. Она включает несколько процедур и функций:

1)Procedure Tkomi.Alg2 - процедура алгоритма нахождения кратчайшего пути

2)Function min - функция нахождения минимума

3)Function provall - функция провала

Интерфейс программы реализован в виде окна, в котором расположено несколько объектов:

1)Информация о программе и разработчиках

2)Поле для ввода количества городов (вершин)

3)Таблица для ввода стоимостей проезда из города в город

4)Поле для вывода конечного результата

2.2 Текст программы

Unit prog;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Grids,ComCtrls;

Type

Tkomi = class (TForm)

Matr1: TStringGrid;

Memo1: TMemo;

Edit1: TEdit;

Label1: TLabel;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

Private

Public

kol:integer;

procedure Alg2;

End;

const n=10;

var komi: Tkomi;

implementation {$R *.dfm}

{-------------Процедура Алгоритма нахождения кратчайшего пути------------------}

Procedure Tkomi.Alg2;

var

d,i:integer;

prov:array[1..10]of boolean;

s:string;

sum1:integer;

{---Функция минимума---}

Function min(i:integer):integer;

var min1,j:integer;

g:integer;

begin

min1:=60000;

for j:=1 to 10 do

if j<>i then

if prov[j]then

if matr1.Cells[j,i]<>'X' then

if min1>strtoint(matr1.Cells[j,i])then

begin

min1:=strtoint(matr1.Cells[j,i]);

g:=j;

end;

min:=g;

end;

{---Функция провала---}

Function provall:boolean;

var i:integer;f:boolean;

begin

f:=false;

for i:=1 to 10 do f:=(f)or(prov[i]);

provall:=not(f);

end;

begin

for i:=1 to kol do prov[i]:=true;

d:=1;s:=matr1.Cells[0,1]+'->';

sum1:=0; prov[1]:=false;

repeat

s:=s+matr1.Cells[0,min(d)]+'->';

if matr1.Cells[d,min(d)]='X' then sum1:=sum1+0

else sum1:=sum1+strtoint(matr1.Cells[d,min(d)]);

d:=min(d);

prov[d]:=false;

until provall;

sum1:=sum1+strtoint(matr1.Cells[d,1]);

s:=s+matr1.Cells[0,1];

memo1.clear;

memo1.Lines.Add(' ');

memo1.Lines.add(' Найденный путь: '+s);

memo1.lines.add(' Длина пути = '+inttostr(sum1));

end;

//Кнопка "Ввод"

Procedure Tkomi.Button2Click(Sender: TObject);

var i,n:integer;

begin

n:=strtoint(edit1.Text);

matr1.ColCount:=n+1;

matr1.RowCount:=n+1;

kol:=n;

for i:=1 to n do

begin

matr1.Cells[0,i]:=inttostr(i);

matr1.Cells[i,0]:=inttostr(i);

matr1.Cells[i,i]:='%';

end;

end;

//Кнопка "Найти кротчайший путь"

Procedure Tkomi.Button3Click(Sender: TObject);

begin Alg2 end;

//Кнопка "Закрыть приложение

Procedure Tkomi.Button4Click(Sender: TObject);

begin close end;

End.

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1.Вентцель Е.С. Исследование операций: задачи, принципы, методология. - М.: Высшая школа, 2004. - 208 с.

2.Исследование операций в экономике/ Под ред. Кремера Н.Ш. - М.:ЮНИТИ, 2004. - 407 с.

3.Конюховский П.В. Математические методы исследования операций в экономике. Краткий курс. - СПб.: Питер, 2002. - 208 с.

4.Просветов Г.И. Математические методы в экономике: Учебно-методическое пособие. - М.: Издательство РДЛ, 2004. - 160 с.

5.Орлова И.В. Экономико-математическое моделирование: Практическое пособие по решению задач. - М.: Вузовский учебник, 2004. - 144 с.

6.Костевич Л.С. Математическое программирование: Информационные технологии оптимальных решений. - Мн.: Новое знание, 2003. - 424 с.

7.Акулич И.Л. Математическое программирование в примерах и задачах. - М.: Высшая школа, 1986. - 319 с.

Размещено на Allbest.ru

...

Подобные документы

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

    дипломная работа [1,7 M], добавлен 07.02.2013

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

    курсовая работа [195,5 K], добавлен 08.11.2009

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

    курсовая работа [603,3 K], добавлен 21.10.2012

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

    курсовая работа [65,3 K], добавлен 16.04.2014

  • Оптимизация решения задачи с помощью алгоритма отжига. Анализ теории оптимизации как целевой функции. Метод градиентного спуска. Переменные и описание алгоритма отжига. Представление задачи коммивояжера через граф. Сведение задачи к переменным и решение.

    курсовая работа [784,0 K], добавлен 21.05.2015

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

    курсовая работа [3,5 M], добавлен 08.08.2013

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

    дипломная работа [979,1 K], добавлен 30.05.2015

  • Методы ветвей и границ первого и второго порядка. Оптимальный и пассивный поиск. Недостатки метода Ньютона. Метод золотого сечения. Примеры унимодальных функций. Динамическое и линейное программирование. Метод Жордана-Гаусса. Решение задачи коммивояжера.

    курсовая работа [1,1 M], добавлен 20.07.2012

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

    реферат [1014,2 K], добавлен 14.01.2016

  • Концептуальная модель операции. Математическая постановка задачи. Описание метода ветвей и границ, прямого перебора. Проектирование сценария диалога. Описание структур данных. Ручная реализация решения задачи с помощью алгоритма Литла и перебора.

    курсовая работа [202,6 K], добавлен 14.12.2013

  • Особенности метода ветвей и границ как одного из распространенных методов решения целочисленных задач. Декомпозиция задачи линейного программирования в алгоритме метода ветвей и границ. Графический, симплекс-метод решения задач линейного программирования.

    курсовая работа [4,0 M], добавлен 05.03.2012

  • Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.

    реферат [157,5 K], добавлен 21.08.2008

  • Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.

    курсовая работа [882,1 K], добавлен 24.11.2014

  • Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.

    курсовая работа [2,5 M], добавлен 22.11.2012

  • Си - это язык программирования общего назначения. Постановка задачи: разработка программы - калькулятора. Метод решения задачи. Алгоритм работы программы. Технические данные для использования. Описание основных функций.

    курсовая работа [14,1 K], добавлен 23.05.2002

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

    курсовая работа [167,8 K], добавлен 01.10.2009

  • Задача о ранце как задача комбинаторной оптимизации. Задача о загрузке, рюкзаке, ранце. Постановка и NP-полнота задачи. Классификация методов решения задачи о рюкзаке. Динамическое программирование. Метод ветвей и границ. Сравнительный анализ методов.

    курсовая работа [1,7 M], добавлен 18.01.2011

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

    курсовая работа [211,3 K], добавлен 22.05.2013

  • Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.

    курсовая работа [844,3 K], добавлен 16.06.2011

  • Постановка линейной целочисленной задачи. Метод отсекающих плоскостей. Дробный алгоритм решения полностью целочисленных задач. Эффективность отсечения Гомори. Сравнение вычислительных возможностей метода отсекающих плоскостей и метода ветвей и границ.

    курсовая работа [178,2 K], добавлен 25.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.