私は仕事で実際の世界の問題を抱えていますが、私はそれをPythonで解決することを望んでいましたが、解決する正しいアルゴリズムを見つけることができません。 私は固定サイズの穴が付いたゴミ箱を持っており、特定のサイズのゴミ袋をいくつか捨てる必要があると言います。各バッグは、具体的に正しいサイズでなければなりません。ゴミ箱の最小数を使用してゴミを捨てるためにどのようなアルゴリズムを使用できますか?ゴミ箱のソートアルゴリズム
-2
A
答えて
0
これはビンのパッキングやナップザックの問題のようです。どちらもNP困難であるため、どちらの問題に対しても多項式時間の最適解は存在しません。しかし、「近い」最適解を保証することができる実装が容易なヒューリスティックアルゴリズムが多数存在する。
最もよく知られているのは、First Fit an Best Fitです。これらのアルゴリズムはどちらも、使用されるビンの数が最適解で使用されるビンの数の1.7倍を超えないようにビンにアイテムをパックすることが保証されています。これらのアルゴリズムの詳細については、hereを参照してください。
次のようになります。Pythonで最初のフィットを使用して、非常に単純な例:
import random
bin_capacity = 1.0
bins = [[]]
bin_stats = [0.0] # used to keep track of how full each bin is
jobs = [random.uniform(0.0,1.0) for i in range(100)]
for job in jobs: # iterate through jobs
job_assigned = False
for i in range(len(bin_stats)):
if job + bin_stats[i] <= bin_capacity:
# if job will fit into bin, assign it there
bins[i].append(job)
bin_stats[i] += job
job_assigned = True
break
if not job_assigned:
# if job doesn't fit into any bin, open a new bin
bins.append([job])
bin_stats.append(job)
for i in range(len(bins)):
print "Bin {:} is {:.2f}% full and contains the following jobs".format(i,bin_stats[i]*100)
for job in bins[i]:
print "\t",job
+0
もう少し詳しく教えてください。私はテストするためのいくつかの機器があります。私のテスト機器の中には、3つのUSBポートと5つのイーサネットポート、そして1つのUSBポートと8つのイーサネットとシリアルポートを持つテスト機器があります。等々... – omryjs
関連する問題
- 1. レールアプリのゴミ箱の実装
- 2. MySQLのトリガ:ゴミ箱に移動
- 3. OS Xのメニュー項目を追加するゴミ箱のドックメニュー
- 4. ゴミ箱フォルダにアクセスするためのPython API
- 5. ドック内のゴミ箱アイコンを変更する
- 6. AppleScriptを使用してメールメッセージをゴミ箱に移動する
- 7. を追加してください。アイコンをボタンにゴミ箱
- 8. jqueryはソート可能、ゴミ箱オブジェクトにドラッグ可能
- 9. ゴミ箱に移動して参照を削除する
- 10. C#でGmailゴミ箱を空にするには
- 11. どのようにして、ゴミ箱のTNonblockingServerをJavaで起動しますか?
- 12. leaflet.drawゴミ箱ボタンすべてのポリゴンを削除して保存する
- 13. Javaソートアルゴリズム
- 14. Java.util.ArrayList.sort()ソートアルゴリズム
- 15. ソートアルゴリズムのアニメーション
- 16. Google Apps Script - Gmail、特定のラベルのゴミ箱に永久に電子メールを削除する
- 17. 選択ソートアルゴリズム
- 18. 逐次ソートアルゴリズム
- 19. ファイルを削除またはクリーンアップするときに、Aptana Studio 3ムーブファイルをゴミ箱に移動する方法は?
- 20. NSWorkspaceを使用してファイルをゴミ箱に移動すると復元できません
- 21. 負荷分散ソートアルゴリズム
- 22. 最新のJavaソートアルゴリズムのリソース
- 23. 挿入ソートアルゴリズムの分析
- 24. STLソートアルゴリズムのヘルプが必要
- 25. Recommenderマッチ箱
- 26. 2箱、1が
- 27. jQueryの箱型の質問
- 28. 箱入り列挙
- 29. CSSで箱詰め
- 30. 箱ひげ図ggplotly
バッグは、N個の異なるサイズ入って来た場合は、あなたは、少なくともN個のゴミ箱を必要としています。唯一の問題は、指定されたサイズに対して複数の缶が必要かどうかです。それは些細なことですが、缶に収まる袋の数を計算するだけです。だから私はここに挑戦を見ない。おそらくあなたは質問に例を追加するべきです。 – user3386109
これに 'python'のように' tag'を使用してください。 –