Magento 2: жадная проблема - PullRequest
0 голосов
/ 04 ноября 2018

Я работаю над проектом, в котором мне нужно создать данные в таком оптимизированном формате, чтобы он не слишком сильно замедлялся.
Проблема:
Предположим, вы заказали 12 единиц в моем интернет-магазине продукта. И для этого продукта у меня есть 5 различных комплектов , чтобы предложить такое большое количество от.
Предположим, что массив пакетов с серийным номером в качестве ключа и единиц, доступных в этом пакете в качестве значения , имеет вид:

$arr = array(
array('sr_no1'=>5),
array('sr_no2'=>7),
array('sr_no3'=>2),
array('sr_no4'=>9),
array('sr_no5'=>12)
);

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

  1. должно быть минимальное количество потерь, например, если вы заказываете 11 единиц, вы бы дали 9 + 2-11 = 0 потерь вместо 12-11 = 1 потери
  2. значение должно быть выбрано из минимального количества лотов / пакетов, например, если вы заказываете 12 единиц, тогда 5 + 7-12 = 0 потерь и 12-12 = 0 потерь, поэтому мы выберем массив ('sr_no5' => 12) за выдачу запрошенного количества.

Я пытался найти решение за последние 3 дня.

Рассмотрим контрольные примеры для заказанного количества, равного 12, 11 или 6. или 35 или 30 и т. д.

В результате мне нужны массивы, которые мы выберем для распределения величин, таких как массив ('sr_no5' => 12) для выдачи 12 единиц упорядоченного количества и массива массивов ('sr_no3' => 2) , массив ('sr_no4' => 9) для выдачи 11 единиц количества.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...