--- 1数理モデル線形計画割り当て問題パイソン

免責事項:この記事は従って、ブロガーオリジナル記事です。CC BY-SA 4.0の著作権契約を、再現し、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/your_answer/article/details/79160045

はじめに:最近では、それは手計算で、ハンガリーのアルゴリズムを使用することは明らかである、ソリューションの割り当て問題について多くを見つけるために、Baiduの上で、興味を持って、アナログ、デジタルの準備と割り当て問題を参照して、様々なブログのすべての種類は非常に詳細な、おそらくあなたは、特定の原則(人々が自分のBaiduのを理解することはできません)を認識しているが、基本的なアルゴリズムが見つからない、正しいと検証することは困難です。可能性のある、それは(ホイール、怠惰を再作成する必要はありません)時間を節約するために、まだ見つけることができない、多くのブログや何かを見つけるために、そこに任意のライブラリ機能を実現することが可能ですのpythonを探したかったです。0-1割り当て問題は、プログラミングについて考えている、線形計画は、怒って、またscipy.optimize公式ウェブサイトを通じて直接見て使用scipy.optimizeライブラリ関数です。または公式サイト無敵ああ。騒ぎ、サンプルのオーバーヘッド行列を見て:


その後、肉眼、それは単純で、選択された第二列、第二列の第一行[413] [205]選択された最初の行2、3行目[322]までを第3列2を選択し、次にコストが5です。次いで、パイソンとの溶液を、次いでscipy.optimize.linear_sum_assignment使用の(cost_matrix)機能。直接コードに添付:


  
  
  1. scipy.optimize インポート linear_sum_assignment
  2. コスト= np.array([[ 413 ]、[ 205 ]、[ 322 ]])
  3. row_ind、col_ind = linear_sum_assignment(コスト)
  4. プリント(row_ind)コストマトリックスに対応する#1行インデックス
  5. プリント(col_ind)行インデックスに対応OptimalAssignment列インデックス#
  6. (コスト[row_ind、col_ind])を印刷各列のインデックスは、アレイが形成されて、最適な割り当て抽出列インデックスの#要素
  7. 印刷(コスト[row_ind、col_ind] .SUM()) 合計する配列

そして、出力結果:

  
  
  1. [0 1 2]
  2. [1 0 2]
  3. [1 2 2]
  4. 5
インデックスは言っていません0から始まり、またはターン1の発言は、公式サイトでは無敵です!役員はその後、カフェ、この機能に掲載 https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.linear_sum_assignment.html#scipy.optimize.linear_sum_assignment

上記。



公開された23元の記事 ウォン称賛20 ビュー40000 +
免責事項:この記事は従って、ブロガーオリジナル記事です。CC BY-SA 4.0の著作権契約を、再現し、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/your_answer/article/details/79160045

おすすめ

転載: blog.csdn.net/GAIYA2050/article/details/100017268