Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Приведем описание эвристического метода решения задачи в качестве примера.
Термин эвристический носит двоякий смысл. Во-первых, к эвристическим методам относят методы, являющимися человеко-машинными, т.е. методы, которые не во всех своих деталях могут быть записаны формально и требуют непосредственного принятия решения человеком на некоторых стадиях вычислительного процесса. Во-вторых, эвристические методы характеризуются использованием некоторых правдоподобных соображений, не являющихся формально обоснованными.
На практике чаще всего используют эвристические методы решения задачи, так как точные методы невозможно применить из-за «проклятия размерности».
Одним из приемов, которые часто используются на практике, является "пожирающие" (greedy) алгоритмы (для булевых задач - метод последовательного назначения единиц).
Рассмотрим применение пожирающего алгоритма на примере задачи линейного программирования с одним линейным ограничением. Пусть необходимо найти максимум:
, (1)
при условии:
, (2)
где x Î { 0, 1 }, j = 1, 2, …, n, cj > 0, aj > 0, bj > 0. Не умаляя общности, можно предположить, что переменные занумерованы так, что c1/a1 ≥ c2/a2 ≥ ≥ cn/an. Будем пытаться максимизировать f(x) за счет самых больших значений cj/aj, полагая последовательно x1, x2, и т. д. равными единице до тех пор, пока не нарушится ограничение (2).
Рассмотрим алгоритм решения задачи о выборе рациона питания:
С=c1x1+c2x2+c3x3+c4x4 ® min;
xi ≥ 0, i = 1,2,3,4;
а11х1+а21х2+а31х3+а41х4≥b1;
а12х1+а22х2+а32х3+а42х4≥b2:
а13х1+а23х3+а33х3+а43х4≥b3 .
Воспользуемся пожирающим алгоритмом (можно также найти точное решение задачи, используя симплекс метод):
1. Найдем список коэффициентов:
H ={ h11, h12, h13, h21, h22,h23, …, h41, h42, h43, },
где h11 = c1/a11 , h12 = c1/a12, h13 = c1/a13,.
h21 = c2/a21, h22 = c2/a22, h23 = c2/a23 …,
h41 = c4/a41, h42 = c2/a42,, h43 = c4/a43,
H={cj/aji i=1,4; j=1,3}.
2. Присвоим s (номер витка цикла) значение равное единице
3. Найдем минимальное значение h*ij, h*ij Î H и исключим из списка H все значения hkj (k=1,4).
4. Назначим максимально возможное значение x*i (s):
x*(s)i = bj/aij.
5. Удалим из дальнейшего рассмотрения ограничение:
а1jх1+а2jх2+а3jх3+а4jх4≥bj:
6. Используя найденное значение x* i (s) изменим ограничения задачи:
а1jх1+а2jх2+а3jх3+а4jх4≥bj - aij ´ x*i(s).
7. Если список H не пустой, то увеличим s на единицу и перейдем к пункту 2. В противном случае завершим решение и найдем значение целевой функции и искомых переменных:
, i= 1,4; ,
где S – множество номеров витков цикла алгоритма (шаги 2-6).
2.3. Решение задачи на контрольном примере
Имеется четыре продукта питания (хлеб П1, сливки П2, колбаса П3, сливочное масло П4). Известна стоимость и пищевая ценность одного килограмма каждого продукта (табл. 3.4.). Из заданного набора продуктов необходимо составить пищевой рацион, который должен содержать:
- белков не менее 0,063 кг (b 1=0,063);
-углеводов не менее 0,100 кг (b 2=0,1);
- жиров не менее 0,180 кг (b 3=0,18).
Требуется составить обладающей минимальной стоимостью пищевой рацион, обеспечивающий заданные условия задачи.
Таблица 3.4
Стоимость Cj (руб). | Пищевая ценность на 1 кг продукта aji | |||
Белки (кг) | Углеводы (кг) | Жиры (кг) | ||
П1 | 0,08 | 0,42 | 0,02 | |
П2 | 0,03 | 0,05 | 0,10 | |
П3 | 0,16 | 0,38 | ||
П4 | 0,01 | 0,02 | 0,72 |
Запишем условия задачи контрольного примера:
0.081х1+0.03х2+0.16х3+0.01х4≥0.63; (3.6)
0.42х1+0.05х2+0х3+0.02х4≥0.1; (3.7)
0.02х1+0.1х3+0.38х3+0.72х4≥0.18; (3.8)
xi ≥ 0, i = 1, 2, 3, 4; (3.9)
С=50x1+40x2+170x3+120x4 ® min. (3.10)
Необходимо найти такие неотрицательные значения переменных х1, х2, х3, х4, удовлетворяющие линейным неравенствам (3.6-3.9), при которых линейная функция этих переменных (3.10) обращалась в минимум.
Найдем стоимость каждого продукта питания с содержанием килограмма каждого питательного вещества (табл. 3.5).
Таблица 3.5
Стоимость (руб.) | Условная стоимость на 1 кг продукта hji | |||
Белки (руб.) | Углеводы (руб.) | Жиры (руб.) | ||
П1 | ||||
П2 | 1333,3 | |||
П3 | - | 437.4 | ||
П4 | ||||
Необходимое количество питательного вещества в рационе | 0.063 | 0.1 | 0.18 |
Выберем минимальное значение из таблицы 3.5 равное 119, соответствующее продукту П1.
Количество продукта П1, необходимого для удовлетворения рациона по углеводам равно:
.
Стоимость продукта П1 дляудовлетворения рациона по углеводам равны:
C*1=c1×x*1 = 50×0,238=11,9 руб.
В найденном количестве продукта П1 будет содержаться белков:
x*1 × a11 = 0.238 ´ 008 = 0.019 кг,
и останется удовлетворить потребность белков в количестве b*1:
b*1=b1-x*1 × a11 = 0,063 - 0.238 ´ 008 = 0,044 кг.
В найденном количестве продукта П1 будет содержаться жиров:
x*1 × a13 = 0.238 ´0.02=0.00476 кг
и останется удовлетворить потребность жиров в количестве b*3:
b*3= b*3=b3-x*1×a13 =0,18- 0.238 ´0.02=0.175.
Получим таблицу 3.6 с измененными значениями потребностей в количестве белков и жиров.
Таблица 3.6
Стоимость (руб.) | Условная стоимость на 1 кг продукта | |||
Белки (руб.) | Углеводы (руб.) | Жиры (руб.) | ||
П1 | ||||
П2 | 1333,3 | |||
П3 | 437.4 | |||
П4 | ||||
Необходимое количество питательного вещества в рационе | 0.044 | 0.175 |
Выберем минимальное значение из таблицы 3.6 равное 166, соответствующее продукту П4.
Количество продукта П4, необходимого для удовлетворения рациона по жирам равно:
Затраты на удовлетворение рациона по жирам продуктом П4 равны:
C4 = с 4× x 4 = 120×0,234=29,16 руб.
В найденном количестве продукта П4 будет содержаться белков:
x 4× a 41 = 0.243 ´ 0.01 = 0.0243 кг.
и останется удовлетворить потребность белков в количестве b**1 :
b **1 = b* 1 - x 4× a 41
b* *1 = b* 1 - x 4× a 41= 0,044 - 0.243 ´ 0.01 = 0,0197 = 0,02 кг.
Получим таблицу 3.7 с корректировкой количества необходимых белков.
Таблица 3.7
Стоимость (руб.) | Условная стоимость на 1 кг продукта | |||
Белки (руб.) | Углеводы (руб.) | Жиры (руб.) | ||
П1 | ||||
П2 | 1333,3 | |||
П3 | ||||
П4 | ||||
Необходимое количество питательного вещества в рационе | 0.02 |
Выберем минимальное значение из таблицы 3.7 равное 625, соответствующее продукту П1.
Дополнительное количество продукта П1, необходимого для удовлетворения рациона по белкам равно:
Дополнительные затраты на удовлетворение рациона по белкам продуктом П1 равны:
С**1=с1×х**1 =50×0,25=12,5 руб.
Находим стоимость рациона:
С=С*1+С4+С**1 = 11.9+ 29.1+ 12.5 = 53.5 руб.
Количество продуктов необходимо приобрести в следующих количествах:
П1(хлеб): x1 = x*1 + x**1 = 0.238+ 0.25 = 0.488 кг;
П4(масло): x4 = 0.243 кг.
3. Проектирование информационного обеспечения
Задача проектирования информационного обеспечения ИС формулируется следующим образом: определить потоки, содержание, носители, форму и структуру представления информации, необходимой и достаточной для управления объектом в рассматриваемой предметной области.
Дата публикования: 2015-04-10; Прочитано: 593 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!