Що це за проблема класу, і яку математику мені потрібно знати, щоб її вирішити?


18

Вирощування грибів вимагає досить чіткого хімічного складу субстрату (він же вирощування). Давайте зробимо вигляд, що ми вирощуємо шитаки і що це необхідний склад їх субстрату:

Nitrogen | Benzene | Toluene | Dioxygen Diflouride
5%       | 5%      | 10%     | 80%

Ми хочемо створити відповідну підкладку з матеріалів, які ми маємо під рукою, про які ми знаємо хімічний склад.

Material | Nitrogen | Benzene | Toluene | Dioxygen Diflouride
apples   | 5%       | 0%      | 5%      | 90%
oranges  | 20%      | 20%     | 50%     | 10%
Etc...

Як це обчислити? Це мені нагадує розв’язування матриць у середній школі. Це щось, що можна зробити за допомогою матриць? Як називається ця проблема? Що мені потрібно знати, щоб вирішити це?


4
Мммм. Дуже приємні шитаки, які ви отримали з бензолом і толуолом та O2F2. Сподіваюся, я ніколи не натрапляю на них у ресторан ...
Мисливець на оленів

3
@Deer Hunter: Я сподіваюся, що я ніколи не заїжджаю на відстань менш ніж 10 миль від цього культиваційного закладу ...
Майкл Боргвардт


2
Ця проблема стає ще цікавішою, якщо вам доведеться враховувати поточну ціну яблук та апельсинів.
Інго

2
"гриби" -> як у хмарах такої ж форми?
Мацей

Відповіді:


27

Це називається лінійне програмування . Ціле обмеження це NP-Hard, але існують методи вирішення цього питання, див. Примітки Джеффа Еріксона до цього питання. Найпоширеніший метод відомий як алгоритм симплекса .

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


9
Лінійне програмування насправді не відоме як NP-жорстке, воно може бути вирішене за багаточлен. Це стає важко, лише якщо ви додасте обмеження цілісності (наприклад, ви не хочете 3,7 яблук, але це повинно бути ціле число).
Falk Hüffner

Виправлено це питання
світовий інженер

4

Редагувати: це не працює, дивіться коментарі

Оскільки у вас тут немає нерівностей і мінімізації витрат, вам фактично не потрібно лінійне програмування, ви можете просто вирішити це як систему лінійних рівнянь . Наприклад, яблука + апельсини = 1, 0,05 * яблука + 0,20 * апельсини = 0,05 і т.д.


Поки системні рішення не дають негативних фракцій (наприклад, змішайте -22% яблук та + 122% апельсинів, щоб становити 100% ...) Дійсно, система лінійних рівнянь дає деяких кандидатів (внутрішні рішення?) але тоді також потрібно перевірити крайові корпуси.
rwong

Правильно, я про це забув.
Falk Hüffner

1
Формула LP добре працюватиме, оскільки може включати обмеження, що всі кількості є позитивними.
Кевін Клайн

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

@Ingo Так, ти маєш рацію; Я не думав так далеко, коли задав питання. Це буде другий крок.
canisrufus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.