Библиотека knigago >> Компьютеры и Интернет >> Учебники и самоучители по компьютеру >> Pyomo. Моделирование оптимизации на Python Книги


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 456, книга: Пустошь. Дом страха
автор: Блейк Крауч

Интересно, что творитсяв голове у автора таких книг, как "Пустощшь"? Явно какое-то отклонение от нормы. Половина сцен вызывает отвращение, читала через страницу, куча "накладок" по сюжету. Странно, что такие книги вообще кому-то нравятся.

М. Бинум - Pyomo. Моделирование оптимизации на Python Книги

Pyomo. Моделирование оптимизации на Python Книги
Книга - Pyomo. Моделирование оптимизации на Python Книги.  М. Бинум  - прочитать полностью в библиотеке КнигаГо
Название:
Pyomo. Моделирование оптимизации на Python Книги
М. Бинум

Жанр:

Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Pyomo. Моделирование оптимизации на Python Книги"


Читаем онлайн "Pyomo. Моделирование оптимизации на Python Книги". [Страница - 15]

решения
получается наилучшее возможное значение целевой функции. Важно отметить, что мы говорим «оптимальные значения» (во множественном числе),
потому что часто бывает так, что наилучшее значение целевой функции достигается при нескольких наборах значений переменных. Эта функция обычно записывается в очень абстрактной форме, например f(x). Что понимать
под «наилучшим» значением – наибольшее или наименьшее, определяется
типом оптимизации: максимизация или минимизация.
Предположим, к примеру, что x – не вектор, а скаляр, равный числу шариков мороженого. Если воспользоваться описанной выше моделью счастья, то
f(x) ≡ h · (x − (x/5)2),

где h – данные. (На самом деле в этом конкретном примере значение h совершенно не важно для нахождения x, максимизирующего счастье.) Смоделированная нами задача оптимизации записывается в виде
max h · (x − (x/5)2),
но склонные к строгости авторы пишут так:
maxx h · (x − (x/5)2),
Книги для программистов: https://t.me/booksforits

Оптимизация  33

чтобы было понятно, что x – переменная решения. В данном случае сущест­
вует всего одно наилучшее значение x, которое можно найти методами численной оптимизации. Это значение оказывается дробным, т. е. придется
купить нецелое число шариков. Такую модель не назовешь полезной для
типичной лавки мороженого, где купить можно только целое неотрицательное число шариков. Чтобы включить это требование, мы добавим в модель
оптимизации ограничение:
maxx h · (x − (x/5)2)
при условии
x ∊ множеству целых неотрицательных чисел.

Предположим, что эта модель используется не в лавке, а дома, где мороженое подает родитель пользователя модели. Если родитель готов делить
шарики на части, но не подает больше двух шариков, то ограничение
x ∊ множеству целых неотрицательных чисел

следует заменить таким:
0 ≤ x ≤ 2.

Эта модель неидеальна, потому что не все дробные значения x осмыслены.
Чтобы проиллюстрировать рассмотренные до сих пор аспекты модели,
вернемся к нескольким продуктам, которые описываются множеством индексов 𝒜, так что x – вектор. Воспользуемся следующей моделью счастья для
продукта с индексом i:
hi · (xi − (xi /di)2),

где h и d – векторы данных с таким же множеством индексов, как у x. Пусть
далее c – вектор цен, а u – вектор максимальных количеств продуктов, которые можно приобрести. Предположим временно, что для любого продукта
купленное количество может быть дробным. И наконец, предположим, что
бюджет ограничен величиной b. Тогда задачу оптимизации можно записать
в виде:

åi∊𝒜 hi · (xi – (xi/di)2
при условии åi∊𝒜 ci xi ≤ b
maxx

(H)

0 ≤ xi ≤ ui, i ∊ 𝒜

Иногда последнее ограничение записывают в виде двух:

åi∊𝒜 hi · (xi – (xi/di)2
при условии åi∊𝒜 ci xi ≤ b
maxx

(H)

xi ≤ ui, i ∊ 𝒜
xi ≥ 0, i ∊ 𝒜
Книги для программистов: https://t.me/booksforits

34  Математическое моделирование и оптимизация
Принято помещать сокращенное имя модели в скобках в одной строке
с целевой функцией. Имя (P) очень распространенное, но мы использовали
(H) как сокращение от «happiness» (счастье). По имени (H) мы будем ссылаться на эту модель далее в данной главе, когда покажем, как реализовать
ее в Pyomo и решить.

2.3. Моделирование в Pyomo
Теперь рассмотрим различные стратегии формулирования и оптимизации
алгебраических моделей в Pyomo. Детальное объяснение моделей Pyomo мы
отложим до главы 3, а здесь приведем только примеры использования Pyomo
для модели (H).

2.3.1. Конкретная формулировка
Конкретная модель Pyomo инициализирует компоненты по мере их конструирования. Это позволяет использовать встроенные в Python структуры
данных при определении экземпляра модели. Существует много способов
реализовать нашу модель в виде конкретной модели Pyomo, и начнем мы
с использования списков и словарей Python.
ПРИМЕЧАНИЕ Понимая, что нам часто придется создавать экземпляры моделей
с разными данными, мы решили написать функцию, которая принимает требуемые
данные в качестве аргументов и возвращает модель Pyomo. При таком подходе мы
сможем повторно использовать общую модель Pyomo с разными данными.
import pyomo.environ as pyo
def IC_model(A, h, d, c, b, u):
model = pyo.ConcreteModel(name = "(H)")
def x_bounds(m, i):
return (0,u[i])
model.x = pyo.Var(A, bounds=x_bounds)
def z_rule(model):
return sum(h[i] * (model.x[i] - (model.x[i]/d[i])**2)
for i in A)
model.z = pyo.Objective(rule=z_rule, sense=pyo.maximize)
model.budgetconstr = pyo.Constraint(\
expr = sum(c[i]*model.x[i] for i in A) --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.