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


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.