次のタスクに適したアルゴリズムを見つけようとしています。
ある量のリソース (実際に利用可能な量) があります。この量は一定の割合 (増加/分) で常に増加します。目標は、指定されたすべてのオプション a,...,n (ここでは、option_A、option_B、Option_C) から利用可能なすべての製品を購入することです。
さて、上昇するリソースに応じて、どの製品をより早く購入できますか (ここでは、option_A4、option_B3、option_C3)?
Actual available quantity
Resource A 142
Resource B 56
Resource C 383
Resource D 335
Increase/min
Resource A 2
Resource B 263
Resource C 482
Resource D 301
Option_A ResA ResB ResC ResD bought
Product 1 00032 00066 00058 00008 *
Product 2 00292 00395 00407 00024 *
Product 3 01752 03555 02033 00073 *
Product 4 03505 31999 12200 00294
Product 5 07009 63998 85401 02938
Option_B ResA ResB ResC ResD bought
Product 1 00008 00048 00006 00034 *
Product 2 00049 00240 00012 00134 *
Product 3 00098 01438 00083 00806
Product 4 00491 04314 00499 06451
Product 5 03929 08628 04985 12901
Option_C ResA ResB ResC ResD bought
Product 1 00022 00011 00024 00078 *
Product 2 00111 00106 00122 00699 *
Product 3 00334 00211 00610 04892
Product 4 00669 01477 01831 39137
Product 5 06020 04432 16482 78275
この種のタスクを解決するためのアルゴリズムが既に存在するかどうかはわかりませんが、私のアプローチは次のようになります。
アプローチ A
1. 実際に入手可能な数量
の桁数の合計 2. すべての製品の桁数の
合計 3. 実際に入手可能な数量の合計を各製品の合計と比較する
4. 距離が短い製品を特定する
これは簡単なことですが、増え続けるリソースは関与せずに、実際の状況だけを描いています。
アプローチ B
1. リソースの実際の量と増加率に応じて、すべてのリソースに到達するのにかかる時間を計算します。
例: Option_A、製品 1、ResA の場合:
必要: 3505
使用可能: 142
増加: 2/分
必要: 3363 (3505-142)
要件に達してからの時間: 1681.5 分 (3363/2)
2. ResB、ResC、ResD について繰り返します。
3. すべての製品について 1+2 を繰り返します4.時間
が最も短い製品を選択します
どう思いますか?