Проблема дієти.

Крістіан Давід Соса Агірре.

Моделі математичної інженерії - магістерська програма з електротехніки. Технологічний університет Перейри.

проблема

Анотація - У цьому документі ви знайдете інформацію про вирішення прикладу проблеми дієти, яка є задачею лінійного програмування, для якої використовується AMPL. Відображаються результати, код програмування та загальне пояснення проблеми.

ВСТУП

А. Лінійне програмування.

Лінійне програмування - це тип програмування, метою якого є вирішення математичних моделей, які мають лише лінійний характер, у свою чергу, метою є можливість оптимізувати будь-яку проблему, знаходячи мінімальне або максимальне значення цільової функції, яка аналізується.

Завдання математичного програмування вимагає 4 основних компонентів:

  • Набір даних.
  • Набір задіяних змінних та їх доменів.
  • Набір обмежень (можливий регіон).
  • Завдання Функція.

Б. Проблема дієти.

“Проблема дієти полягає у визначенні кількості різних продуктів, які необхідно вживати, щоб забезпечити певні харчові умови та мінімізувати витрати на придбання їжі. Точніше, припустимо, що харчовий вміст певних продуктів, їх ціни та рекомендована мінімальна добова кількість поживних речовин відомі. Проблема полягає у визначенні кількості кожного товару, який потрібно придбати, таким чином, щоб було дотримано рекомендований мінімум та досягнуто мінімальну загальну ціну ". [1].

Математична модель, описана символічним чином, представлена ​​на малюнку 1.

Рис. 1. Математична модель дієтичної проблеми.

Параметри моделі описані нижче:

Рис. 2. Параметри моделі.

II. ЗАЯВНА ВПРАВА

Щоб зрозуміти проблему дієти, представлений наступний приклад застосування з відповідним рішенням, запрограмованим на AMPL.

Є 5 харчових продуктів, і кожен з них має 4 поживні речовини, а кількість поживної речовини i для їжі j, існує також мінімальна кількість поживної речовини i, яку потрібно споживати, у свою чергу, відповідні ціни представлені для кожної їжі j. Мета полягає в тому, щоб знайти кількість їжі за найнижчою ціною, яка задовольняє, принаймні мінімальна кількість поживних речовин коштує надмірності.

Їжа є; Кукурудза А, Овес, Кукурудза В, Висівки та лляне насіння.

Поживні речовини є; DN, DP (це засвоювані білки), Ca (кальцій) і Ph (фосфор).

На наступному малюнку представлена ​​узагальнена інформація:

Рис. 3. Параметри вправ застосування.

Для вирішення моделі використовується наступна харчова конвенція:

  • Кукурудза А - це номер 1.
  • Вівсянка, це номер 2.
  • Кукурудза В - номер 3.
  • Збережено, це номер 4.
  • Лляне насіння, це номер 5.

Конвенція щодо поживних речовин така: - DN - номер 1. - DP - номер 2. - Ca, номер 3. - Ph, номер 4

Вирішення моделі в AMPL. AMPL - це мова програмування, функція якої полягає у вирішенні проблем оптимізації. Перевага, яку пропонує це середовище, полягає в тому, що модель може бути описана символічним способом, тобто, як показано на малюнку 1. Однак, повинні відповідати певні критерії:

Знати середовище програмування.

Щоб вирішити будь-яку проблему, необхідно створити файл .mod, де модель символічно описується.

Потрібно створити файл .dat, саме там вказуються параметри моделі.

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

Нижче наведено код, написаний на AMPL, для розв’язання вправи та її результатів.