3.2.2. Эвристические методы принятия решений
Приведем описание эвристического метода решения задачи в качестве примера.
Термин эвристический носит двоякий смысл. Во-первых, к эвристическим методам относят методы, являющимися человеко-машинными, т.е. методы, которые не во всех своих деталях могут быть записаны формально и требуют непосредственного принятия решения человеком на некоторых стадиях вычислительного процесса. Во-вторых, эвристические методы характеризуются использованием некоторых правдоподобных соображений, не являющихся формально обоснованными.
На практике чаще всего используют эвристические методы решения задачи, так как точные методы невозможно применить из-за «проклятия размерности».
Одним из приемов, которые часто используются на практике, является "пожирающие" (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.
-
Удалим из дальнейшего рассмотрения ограничение:
а1jх1+а2jх2+а3jх3+а4jх4≥bj:
-
Используя найденное значение x*i (s) изменим ограничения задачи:
а1jх1+а2jх2+а3jх3+а4jх4≥bj - aij x*i(s).
-
Если список H не пустой, то увеличим s на единицу и перейдем к пункту 2. В противном случае завершим решение и найдем значение целевой функции и искомых переменных:
, i=1,4; ,
где S – множество номеров витков цикла алгоритма (шаги 2-6).
- С.А. Зарайский, а.Л. Осипова. В.А. Суздальцев,
- Технология разработки информационных систем
- Учебное пособие по курсовому проектированию
- По дисциплине «Технология разработки информационных систем»
- Содержание
- Цели и задачи ис
- Производственно-хозяйственная деятельность
- Информационная технология
- 1.2.1. Построение сценария информационного процесса
- 1.2.2. Построение схемы документооборота
- 1.2.3. Описание процедур обработки данных
- 1.3. Формулирование целей и задач ис
- 2. Функциональная структура ис
- 2.1. Внешние объекты и диаграммы окружения
- 2.2. Данные, результаты, хранилища и логическая модель
- 2.3. Задачи, функции и модель поведения
- 3. Математическое обеспечение
- 3.1. Построение математической модели задачи
- 3.2. Метод решения задачи
- 3..2.1. Выбор метода решения задачи
- 3.2.2. Эвристические методы принятия решений
- 3.3. Решение задачи на контрольном примере
- 4. Проектирование информационного обеспечения
- 4.1. Концептуальное проектирование базы данных.
- 4.2. Логическое проектирование базы данных
- Нормализация отношений.
- 1. Первая нормальная форма (1нф).
- 2. Вторая нормальная форма(2нф)
- 3. Третья нормальная форма (3нф).
- Этапы логического проектирования базы данных.
- 4.3. Ведение бд
- 4.3.1. Определение списка событий
- Примеры отношения и описания списка событий приведены в табл. 4.9-4.10
- 4.3.2..Классификация событий
- 2. Разбиение множества событий. Каждое событие должно быть отнесено к одному из выбранных классов.
- 4.3.3. Постановка задач ведения базы данных
- 5. Технологический процесс обработки данных
- 5.1. Технология обработки данных
- 5.2. Расчет достоверности обработки информации
- 6. Разработка алгоритмов решения прикладных задач
- 7. Выбор комплекса технических средств
- 7.1. Оценка времени загрузки рабочей станции
- 7.2. Оценка времени ввода данных
- 7.3. Оценка времени загрузки печатающих устройств
- 1. Определение характеристик печатной продукции.
- 2 Отбор принтеров и определение их характеристик.
- 7.4. Оценка времени печати
- 7.5. Оценка времени выполнения диалоговых процедур
- 7.6.Оценка времени доступа к внешней памяти
- 7.7. Оценка времени выполнение программ
- 7.8. Оценка объема базы данных
- 8. Требования к оформлению приложений
- 8..1.Формы документов
- 8.2. Кодификаторы информации (кодирование в бд)
- 8.3 .Словарь терминов
- Список источников
- Приложение1 задание к курсовому проекту дисциплина –«технология разработки информационных систем»
- Сроки контроля выполнения проекта
- Приложение 3. Образец содержания курсового проекта содержание
- Приложение 6. Общие требования к оформлению пояснительной записки
- Приложение 7. Структура текстовой части
- Приложение 8. Рубрикация текста. Требования к изложению и стилю текста
- Приложение 9. Оформление таблиц и иллюстраций
- Приложение 10. Список использованных источников. Оформление ссылок
- Оформление ссылок. Встречаются ссылки двух видов: ссылки внутри текста (на различные рисунки, на страницы, формулы, таблицы, иллюстрации) и библиографические ссылки.