---
# System prepended metadata

title: Контрольное домашнее задание

---

---
title : Контрольное домашнее задание
author : Екатерина Кучава
---
# Контрольное домашнее задание
### Предмет : Теория и методы принятия решений о развитии экономики и общества


## a. Описание задачи 

В данной работе я решаю задачу выбора меню алкогольных напитков для свадебной вечеринки.

Вводными параметрами являются количество приглашенных гостей и средняя степень опьянения одного гостя ((количество чистого алкоголя)), либо количество напитков на одного гостя, а также бюджет бара.

Для оптимального выбора меню используются данные о классических рецептах вечерних напитков из официального сборника Международной Ассоциации Барменов.

## b. Источники данных 

Численные данные для задачи взяты из репозитория на Github (https://github.com/teijo/iba-cocktails) и представляют собой две таблицы
- Список ингредиентов с основными характеристиками: крепкость (% алкоголя), цена в рублях (данные собраны вручную с сайтов alcomarket.ru и winestyle.ru), и объем который можно приобрести за такую цену;
- Список коктейльных напитков с рецептами : под рецептом здесь упрощенно понимается вектор мер каждого из исходных ингредиентов необходимых для приготовления напитка.

Всего официальный сборник рецептов описывает 77 разных коктейлей использующих совместно более 52 ингредиентов (мы исключили из подсчета нежидкостные специальные ингредиенты, такие как листки мяты, цедру лимона, кофейные зерна и пр.)

Данные об ингредиентах приведены в Приложении, тогда как данные о рецептах представляют собой матрицу 52x77 и для удобства приведены только в сопутствующем Excel файле.

## c. Формальная математическая модель 

В задаче используются следующие обозначения

### Переменные решения 

1. Количество напитков каждого рецепта, целочисленные
$$x = [x_1, \dots, x_{77}]$$
2. Количество небходимых ингредиентов, действительные положительные числа, количество сантилитров,
$$y = [y_1, \dots,  y_{52}]$$
3. Количество бутылок каждого из ингредиентов, неотрицательные целые числа
$$z = [z_1, \dots,  z_{52}].$$

### Данные задачи

#### Внешние данные

1. Вектор цен $p = [p_1, \dots , p_{52}],$ где $p_j$ это цена одной бутылки ингредиента $j$ в рублях. 
2. Вектор емкостей $v = [v_1, \dots , v_{52}],$ где $v_j$ это емкость одной бутылки ингредиента $j$ в сантилитрах.
2. Вектор крепкостей $k = [k_1, \dots k_{52}],$ где $k_j$ это количество процентов чистого алкоголя в игредиенте $j$.
3. Матрица мер $$A = [ a_{ij}]_{i=1,..77,j=1,..52} = \begin{bmatrix} 
a_{1,1}&\cdots&a_{1,52} \\
\cdots&\cdots&\cdots\\
a_{77,1}&\cdots& a_{77,52}
\end{bmatrix},$$
где $a_{i,j}$ - действительное положительное число показывающее сколько сантилитров ингредиента $j$ нужно для приготовления одного напитка $i$.

#### Параметры задаваемые пользователем

1. Количество гостей $n$
2. Минимальное количество напитков на одного гостя $\bar x$
3. Минимальное количество чистого алкоголя на одного гостя $\bar k$.

### Ограничения

#### Требуемое количество напитков

$$\sum_{i = 1}^{77} x_i \geq n \bar x $$

Суммарное количество приготовленных напитков должно быть больше чем минимальное количество напитков в расчете на гостя помноженное на количество гостей.

#### Требуемая средняя степень опьянения

$$\sum_{i=1}^{77}\sum_{j=1}^{52} \frac{k_j}{100} a_{i,j} x_i \geq n \bar k.$$

Левая часть задает общее количество чистого алкоголя в во всех приготовленных напитках. Правая часть это произведение общего количества гостей на 

#### Необходимое количество ингредиентов

Для любого $j = 1, \dots, 52$ выполняется

$$y_j = \sum_{i=1}^{77} a_{i,j} x_i ,$$

простое "бухгалтерское" равенство.

#### Достаточность купленных бутылок

Для $j = 1, \dots 52,$

$$y_j \leq v_j z_j, $$

количество использованного алкоголя должно быть меньше чем количество купленного алкоголя, количество бутылок помноженное на емкость одной бутылки.



#### Целевая функция

Целевая функция - затраты на приобретение ингредиентов, меню подбирается таким образом, чтобы минимизировать затраты

$$ \min_{x,y,z} \sum_{j = 1} ^{52} p_{j} z_j $$


## d. Решение задачи в Excel 
Решить задачу надо будет через надстройку Поиск
решения. В отчет надо включить 
- скриншот листа с задачей, а также 
- скриншоты всех основных диалоговых окон (где вы указываете 
    - ограничения, 
    - какие должны быть переменные: целочисленные, неотрицательные и т.д.). 
    Сам файл с расчетами надо будет прислать вместе с отчетом через форму на сайте.

## e. Выводы 
- Была ли решена поставленная задача, 
- какие были получены результаты, 
- Ваши впечатления от работы в Excel и выполнения домашней работы.
    - Самой тяжелой частью работы был сбор и форматирование данных.
    - 


## Приложение

### Таблица 1. Ингредиенты коктейлей, характеристики

|Ингредиент|Содержание алкоголя|Цена|Объем, |
|:---|:---:|:---:|:---:|
|Absinthe|40| 2015| 75|
|Aperol|11| 1580| 70|
|Apricot brandy|40| 523| 25|
|Blackberry liqueur|40| 1110| 70|
|Cachaca|40| 1735| 70|
|Calvados|40| 8295| 70|
|Campari|25| 2545| 75|
|Champagne|12| 3199| 75|
|Cherry liqueur|30| 2013| 70|
|Coconut milk|0| 0| 10|
|Coffee liqueur|20| 2012| 70|
|Cognac|40| 2768| 70|
|Cola|0| 0| 100|
|Cranberry juice|0| 0| 10|
|Cream|0| 0| 10|
|Cream liqueur|20| 1056| 50|
|Créme liqueur|20| 1607| 70|
|Dark rum|40| 2255| 70|
|DiSaronno|28| 3045| 100|
|DOM Bénédictine|40| 2498| 70|
|Drambuie|40| 3445| 70|
|Dry White Wine|12| 290| 70|
|Egg yolk|0| 0| 1|
|Galliano|30| 1259| 70|
|Gin|40| 1250| 70|
|Ginger Ale|0| 0| 50|
|Ginger beer|5| 0| 70|
|Grapefruit juice|0| 0| 100|
|Hot coffee|0| 0| 10|
|Kirsch|40| 1775| 50|
|Lemon juice|0| 0| 10|
|Lillet Blonde|15| 1276| 75|
|Lime juice|0| 0| 10|
|Olive juice|0| 0| 10|
|Orange Bitters|40| 1746| 10|
|Orange juice|0| 0| 100|
|Peach puree|0| 0| 10|
|Peach schnapps|40| 2655| 70|
|Pineapple juice|0| 0| 10|
|Pisco|40| 3990| 75|
|Prosecco|12| 1140| 75|
|Raspberry liqueur|20| 1399| 70|
|Red Port|20| 751| 75|
|Soda water|0| 0| 10|
|Syrup|0| 0| 10|
|Tequila|40| 4730| 70|
|Tomato juice|0| 0| 10|
|Triple Sec|40| 2013| 70|
|Vermouth|17| 835| 100|
|Vodka|40| 670| 50|
|Whiskey|40| 2590| 70|
|White rum|40| 1255| 70|

### Таблица 2. Рецепты коктейлей

