JSは貪欲アルゴリズムに基づいてリュックサック問題を解決する例を示します。
2091 ワード
本論文の実例はJSが貪欲アルゴリズムに基づいてリュックサック問題を解決することを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
欲张りアルゴリズム:问题を解决する时、いつも今から见れば一番いい选択です。つまり、全体の最適化から考えないで、彼が作ったのはある意味での局部最適解だけです。
最適解を探す過程は、現在の最良解を得ることが目的です。
部分のリュックサックの問題:固定容量のリュックサックは物品の総括的な最大の価値を入れることができます。
物品A B C
価格は50 220 60です
サイズ5 20 10 12
比率10 11 6
比例降順でできるだけ多くのものを入れます。
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
欲张りアルゴリズム:问题を解决する时、いつも今から见れば一番いい选択です。つまり、全体の最適化から考えないで、彼が作ったのはある意味での局部最適解だけです。
最適解を探す過程は、現在の最良解を得ることが目的です。
部分のリュックサックの問題:固定容量のリュックサックは物品の総括的な最大の価値を入れることができます。
物品A B C
価格は50 220 60です
サイズ5 20 10 12
比率10 11 6
比例降順でできるだけ多くのものを入れます。
function greedy(values, weights, capacity){
var returnValue = 0
var remainCapacity = capacity
var sortArray = []
values.map((cur, index) =>{
sortArray.push({
'value': values[index],
'weight': weights[index],
'ratio': values[index]/weights[index]
})
})
sortArray.sort(function(a, b){
return b.ratio > a.ratio
})
console.log(sortArray)
sortArray.map((cur,index) => {
var num = parseInt(remainCapacity/cur.weight)
console.log(num)
remainCapacity -= num*cur.weight
returnValue += num*cur.value
})
return returnValue
}
var items = ['A','B','C','D']
var values = [50,220,60,60]
var weights = [5,20,10,12]
var capacity = 32 //
greedy(values, weights, capacity) // 320
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScript数学演算の使い方のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScript検索アルゴリズムのテクニックのまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ」本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。