оптимизация рациона питания




 

1 Теоретические сведения

 

Задача принятия решения в математической постановке часто сводится к отысканию оптимального значения функции на множестве ограниченных значений переменных или переменной. Термин «оптимальный» происходит от латинского optimus ― наилучший. Ограничения значений переменных задаются равенствами или неравенствами. Подобные задачи оптимизации с ограничениями называются задачами математического программирования.

Постановка задачи математического программирования состоит, например, в следующем: найти такие значения переменных xj (j =1, 2,…, n), которые, находясь в границах интервалов dj £ xj £ Dj, удовлетворяли бы граничным значениям bi функций ограничений gi (xjbi (i =1, 2,…, m) и придавали бы целевой функции E = f (xj) оптимальное (наибольшее или наименьшее) значение. В большинстве практических задач переменные xj неотрицательные.

Формальное описание задачи математического программирования представляется критерием оптимизации (max или min)

Е = f (xj)®max (min), (1.1)

ограничениями

gi (xjbi (1.2)

и граничными условиями

dj £ xj £ Dj. (1.3)

Число переменных и ограничений конечное: j =1, 2,…, n; i =1, 2,…, m.

Классификация задач математического программирования по видам переменных и зависимостей между переменными системы (1.1)-(1.3) представлена в таблице 1.1.

 

Таблица 1.1 ― Классификация задач математического программирования

Признак классификации Название класса задач Методы оптимизации
Линейные алгебраические зависимости в целевой функции и ограничениях Линейное программирование Симплекс-метод
Дифференциальные зависимости между переменными в функции времени Оптимальное управление или динамическая оптимизация  
Хотя бы одно ограничение или только целевая функция является нелинейной зависимостью Нелинейное программирование  
Переменные принимают только дискретные значения Дискретное, целочисленное программирование Симплекс-метод+метод ветвей и границ Метод отсечений. Метод Баллаша
Целевая функция, ограничения содержат случайные величины Стохастическое программирование  

 

Зависимости, в которых переменные или производные находятся в первой степени, называют линейными. Если в зависимости имеются переменные в степени выше первой или произведения нескольких переменных, то такие зависимости называют нелинейными.

Непрерывная переменная в заданном интервале граничных условий может принимать любые значения, а дискретная переменная ― лишь определённые значения. Целочисленная дискретная переменная принимает только целые значения. Целочисленная булева переменная принимает только два значения: 0 и 1.

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

С = ®min, (1.4)

³ ri, i =1, 2,…, m, (1.5)

xj ³ dj, (1.6)

где С ― оценка получаемого результата; xj ― количество объектов вида j, на которые выделяется часть ресурсов; cj ― «вклад» объекта вида j в получаемый результат; ri ― предельное значение количества ресурсов вида i; rij ― количество ресурсов вида i, выделяемое объекту вида j; dj ― граничные значения количества объектов вида j; n ― количество видов объектов; m ― количество видов ресурсов.

Если не накладывается условие целочисленности переменных, то задача решается методами линейного программирования. В противном случае задача решается методами целочисленного программирования!

Задача линейного программирования решается симплекс-методом в Matlab с использованием функции linprog.

 

2 Задание и методические указания

 

Рацион питания человека составляется из четырёх видов продуктов (таблицы 2.1, 2.2). Количество продуктов xj вида j в рационе не менее dj. Стоимость единицы продуктов вида j составляет cj. Известно, что в продуктах содержатся два вида питательных веществ. В единице продуктов вида j содержится rij питательных веществ вида i. Человеку необходимо не менее ri питательных веществ вида i. Требуется оптимизировать симплекс-методом по критерию минимальной стоимости количество продуктов в рационе питания.

 

Таблица 2.1 ― Исходные данные

Вид продуктов, j Минимальное количество продуктов в рационе, dj Стоимость единицы продуктов, cj Минимальное количество питательных веществ необходимое человеку, ri Содержание питательных веществ в единице продуктов, rij
r 1 r 2 r 1 j r 2 j
Число условных единиц
  d 1 c 1        
  d 2 c 2    
  d 3 c 3    
  d 3 c 4    

 

Таблица 2.2 ― Варианты задания

Вариант                                
c 1                                
c 2                                
c 3                                
c 4                                
Значения d 1, d 2,, d 3, d 4 выбирать самостоятельно.

 

Методические указания по выполнению практической работы:

а) изучить лекции по математическому программированию;

б) сформулировать ответы на контрольные вопросы;

в) изучить рекомендуемую литературу по теме занятия;

г) выполнить задание:

1) выполнить формальную постановку задачи линейного программирования, содержащую критерий оптимизации с ограничениями и граничными условиями, для заданного варианта исходных данных;

2) представить описание синтаксиса функции linprog в табличной форме с комментариями;

3) обосновать выбор варианта синтаксиса функции linprog для решения поставленной задачи;

4) составить программу оптимизации диеты симплекс-методом с использованием функции linprog и графического интерфейса пользователя Matlab;

4) решить задачу для исходных данных, указанных в таблицах 2.1 и 2.2;

5) результаты решения задачи представить в табличной форме (таблица 2.3).

д) представить отчёт о работе в электронном виде преподавателю на очередном практическом занятии, ответить на контрольные вопросы.

 

Таблица 2.3 ― Рекомендуемая форма представления результатов оптимизации диеты

Вид продуктов Количество продуктов в рационе Ограничения (минимальное количество питательных веществ) Количество питательных веществ Стоимость
планируемое оптимальное в единице продуктов в планируемом рационе в оптимальном рационе единицы продуктов планируемого рациона оптимального рациона
r 1 r 2 r 1 j r 2 j r r r r
Число условных единиц
  d 1                   c 1    
  d 2               c 2    
  d 3               c 3    
  d 3               c 4    
  å= å= å= å=   å= å=

 

Интерфейсом пользователя предусматривается импортирование в рабочее пространство Matlab таблицы исходных данных (таблица 2.1) из архива по задаваемому адресу или ввод исходных данных в интерактивном режиме, ввод задания в форме, предусматриваемой синтаксисом функции linprog, представление результатов оптимизации в форме, предусматриваемой синтаксисом функции linprog, экспорт результатов оптимизации в архив по задаваемому адресу.

Отчёт о работе должен содержать титульный лист, задание, формальную постановку задачи линейного программирования, содержащую критерий оптимизации с ограничениями и граничными условиями, описание синтаксиса функции linprog, представление исходных данных и задания в форме, предусматриваемой синтаксисом функции linprog, текст программы Matlab с комментариями, результаты оптимизации в форме таблицы 2.3, выводы.

 

3 Рекомендуемая литература

 

1 Справочник по оптимизационным задачам в АСУ/ В.А. Бункин, Д. Колев, Б.Я. Курицкий и др. ― Л.: Машиностроение, 1984. ― 212 с.

2 Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 7: программирование, численные методы. ― СПб.: БХВ-Петербург, 2005. ― 752 с. Глава 16. Линейное программирование.

3 Решение задач линейного программирования в среде MATLAB / А.Н. Сергеев, Н.А. Соловьёва, Е.К. Чернэуцану [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: https://dha.spb.ru/PDF/MatLabLP.pdf. — Загл. с экрана.

4 Рыкин О.Р. Упражнения по дисциплине «Системный анализ и принятие решений» в среде пакета MАТЛАБ 6,5: методические указания. Редакция 28.02.03 [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: https://www.ii.spb.ru/material/methodical_m/m_3/Methodical_and_manuals_3_9.pdf. — Загл. с экрана.

5 Гольдштейн А.Л. Оптимизация в среде Matlab: учебное пособие / А.Л. Голдштейн. ― Пермь: Изд-во Перм. нац. исслед. политехн. ун-та, 2015. ― 192 с. Подробно описаны функции пакетов Toolbox Optimization и Toolbox Global Optimization Matlab с многочисленными примерами.

6 Реализация симплекс метода [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: https://www.studfiles.ru/preview/6008218/page:23/. — Загл. с экрана. Реализация симплекс-метода в Excel и Matlab.

+7 Колокольникова А.И., Киренберг А.Г. Спецразделы информатики: введение в MatLab: учебное пособие [Электронный ресурс]. — Электрон., текстовые дан. — Режим доступа: books.google.ru/books?id=MGQ5CwAAQBAJ&pg=PA51&lpg=PA51&dq=linprog+%D0%BC%D0%B0%D1%82%D0%BB%D0%B0%D0%B1+%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81&source=bl&ots=oLKkFGWH1c&sig=Mr42GZ388c8tjj7QSwJanaWTZ4o&hl=ru&sa=X&ved=0ahUKEwigmuXvr6fZAhUGDiwKHT0tB7kQ6AEIYzAG#v=onepage&q=linprog%20%D0%BC%D0%B0%D1%82%D0%BB%D0%B0%D0%B1%20%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81&f=false. Содержит постановку и решение задачи оптимизации рациона питания в Matlab.

 

Контрольные вопросы и задания

 

1 Почему задачи вида (1.10) называются задачами линейного математического программирования.

2 Пояснить разницу между целевой функцией и критерием оптимизации.

3 Изобразить графически область допустимых решений для следующих ограничений:

;

;

.

4 Найти максимальное и минимальное значения целевой функции при ограничениях , , .



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-05 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: