русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Графический метод решения задач линейного программирования


Дата добавления: 2015-07-09; просмотров: 2157; Нарушение авторских прав


 

 

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

Общая постановка задачи для решения графическим методом

Дана целевая функция (формула (4.1)):

 

L=с1x1+с2x2extr, (4.1)

 

при условиях (формулы (4.2, 4.3)):

 

ai1xi1+ai2xi2 £ bi, i=1,m (4.2)

 

xj³0, j=1,2 (4.3)

 

Здесь условия (4.3) означают, что допустимые планы принадлежат геометрическому квадрату, каждое из условий (4.2) определяет полуплоскость по одну сторону от прямой ai1xi1+ai2xi2£bi, а пересечение полуплоскости (4.2) и неотрицательность квадрата (4.3) представляет собой выпуклый многоугольник — геометрическое место допустимых планов, рисунок 20.

Целевая функция (4.1) является прямой, перпендикулярной вектору С=(С1; С2). Придавая параметру L различные значения, получаем семейство параллельных прямых. Переход от одной прямой этого семейства к другой в направлении, определяемом вектором С, приводит к возрастанию значений целевой функции, а движение в противоположном направлении — к убыванию, следовательно, переместив опорную прямую L так, чтобы целевая функция приняла экстремальное значение, и хотя бы одна точка многоугольника условий принадлежала этой прямой, найдем экстремальное значение целевой функции.

 

 

X2
X1
c
L

Рис. 20.

 

Алгоритм для решения задач линейного программирования графическим способом



1. Построить многоугольник решений системы ограничений.

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

z=P1x1+P2x2,

пусть z=P1P2, тогда:

.

 

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

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

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

6. Затем полученные координаты подставить в целевую функцию, вместо х1, х2 и найти общее решение задачи.

 

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

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

 

 

Таблица 8

Виды продукции Нормы затрат на ед. продукции Прибыль за ед. продукции (тенге)
Рабочее время (чел.час) Древесина (м3) Стекло (м2)
Стол 9,2 0,3
Шкаф 0,6
Имеющийся объем ресурсов (в месяц)

 

Обозначим: х1 — количество столов

х2 — количество шкафов,

тогда: 3x1+2x2 ® max;

 

9,2x1+4x2£520,

0,3x1+0,6x2£24,

2x2£40,

x1³0; x2³0.

 

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

На графике проведем прямую 9,2x1+4x2=520, найдем две точки, в которых искомая прямая пересекает оси х1 и х2.

При х2=0, х1= =56,5, при х1=0, х2= =130

Через точку (56,5; 130) проведем прямую АВ.

Проведем прямую соответствующую уравнению 0,3x1+0,6x2=24; х2=0; х1=80; х1=0; х2=40.

Прямая СD(80;40)

Третья прямая EF соответствует уравнению 2х2=40 , она проходит параллельно оси х1 и пересекает ось х2 в точке х2=20 (рисунок 21).

Убедиться в том, с какой стороны от прямой лежит полуплоскость, точки которой удовлетворяют заданному неравенству, можно путем подстановки координат точек одной или другой полуплоскости в неравенство. Когда прямая, ограничивающая полуплоскость, не проходит через начало координат, удобнее всего подставлять точку с координатами (0,0). Если координаты точки удовлетворяют неравенству, то эта точка лежит в полуплоскости, соответствующей данному неравенству. В противном случае неравенству будет соответствовать другая полуплоскость.

Существует и другой способ определения полуплоскости. Если коэффициент при х2 в ограничении положительный, то неравенству «>» соответствует полуплоскость, лежащая выше граничной прямой, а неравенству «<» — полуплоскость, лежащая ниже граничной прямой. Если коэффициент при х2 в ограничении отрицательный, то наоборот.

 

X2
X1
E
D
L
N
B
K
P
A
C
M
F
 

Рис. 21.

 

Область определения задачи будет представлять собой пересечение всех построенных полуплоскостей. В данном случае это пятиугольник ОАРFЕ. В этой области находятся все допустимые решения задачи. Необходимо выбрать такое, которое обеспечивало бы большую прибыль, т.е. 3x1+2x2®max. Положим произвольно: 3x1+2x2=120. Тогда прямая KL пройдет через точки х1=40; х2=60. Точки, лежащие на этой прямой отвечают программам, при которых прибыль составляет 120тенге. Это не максимум прибыли. Для решения задачи нужно найти прямую, которая расположена дальше других (наибольшая прибыль), но имеет хотя бы одну общую точку с пятиугольником OAPFE. Нужно переместить прямую KL параллельно самой себе так, чтобы она не "оторвалась" от этого пятиугольника и имела с ними хотя бы одну общую точку. В задаче это прямая MN и общая точка Р. Найдем координаты точки Р. 1-ый способ — снять с графика, 2-ой способ — решить совместно уравнения 2-х прямых АВ и СD.

9,2x1+4x2=520

0,3x1+0,6x2=24 Получим: х1=50; х2=15

Максимальная прибыль 3∙50+2–15=180(тг.)

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

Определение 1. Множество называется выпуклым, если ему вместе с двумя произвольными точками принадлежит и прямолинейный отрезок, соединяющий их.

Определение 2. Множество называется замкнутым, если ему принадлежат все граничные точки.

Замкнутое множество может быть ограниченным и неограниченным. Множество планов задачи линейного программирования представляет собой замкнутый выпуклый многогранник (в двумерном пространстве — замкнутый выпуклый многоугольник). Вершины многогранника (многоугольника) являются его угловыми точками. Прямая, плоскость, полуплоскость, пространство, полупространство угловых точек не имеют.

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

В двумерном пространстве утверждение второй части теоремы будет иметь место, если прямая f(x)=c1x1+c2x2=0 при передвижении по области в необходимом направлении совпадает с одной из граничных прямых области. Такое совпадение возможно только при равенстве угловых коэффициентов данных прямых.

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

Множество планов задачи линейного программирования может быть:

1) замкнутым ограниченным — в этом случае задача обязательно имеет одно или бесконечное число оптимальных решений;

2) замкнутым неограниченным — в этом случае задача имеет одно или бесконечное число решений, когда в силу неограниченности множества значение целевой функции не ограничено;

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

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

 

Пример: Ежедневный рацион кормления сельскохозяйственных животных состоит из двух видов кормов (сено и концентраты), и требования к качеству кормов ограничивается содержанием трех компонентов — кормовых единиц, белка и кальция. В таблице 9 приведены числовые данные о суточной потребности одного животного в питательных веществах, о содержании питательных веществ в 1кг кормов каждого вида и о себестоимости кормов в данном хозяйстве.

 

Таблица 9

Виды кормов Содержание в 1кг кормов Стоимость 1кг (тенге)
кормовых единиц белка кальция
Сено 0,5 1,5
Концентраты 2,5
Суточная потребность в питательных веществах

 

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

Обозначим: х1 — необходимое количество сена,

х2 — необходимое количество концентратов,

тогда:

 

1,5x1+2,5x2®min;

0,5x1+x2³20,

50x1+200x2³2000,

10x1+2x2³100,

x1³0; x2³0.

 

Прямая АВ: 0,5x1+x2=20 Координаты (40;20)

Прямая АС: 50x1+200x2=2000 Координаты (40;10)

Прямая : 10x1+2x2=100 Координаты (10;50)

Произвольно приравняем 1,5x1+2,5x2=30

С
D
A
E
P
B
K
L
M
N
X2
X1

Прямая KL координаты (20;12) (рисунок 22)

Рис. 22

 

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

Это прямая MN с общей точкой Р (пересечение прямых АВ и ):

 

0,5x1+x2=20,

10x1+2x2=100.

 

Решив систему, получим: х1=6,67, х2=16,67.

Себестоимость данного рациона составляет: 1,5×6,67+16,67×2,5=51,7 (тг.)

Примечание: прямая АС (белки) не участвует в области образования допустимых решений.

 

 



<== предыдущая лекция | следующая лекция ==>
Затрат, прямых и полных затрат труда и капиталовложений | Каноническая форма задач линейного программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.149 сек.