2011-07-15 17 views
0

ゲームTiny Tower 0-9異なる属性に熟練している様々な「Bitizens」は:アルゴリズム - 安定結婚問題

Michael: 
a) retail: 9 
b) creative: 2 
c) service: 7 
d) recreational: 4 
e) food: 6 

そして、それは、ここでのビジネスを持っています3人のBitizensが働くことができます。各事業は、小売り、創造的、サービス、レクリエーション、食品のいずれかのカテゴリーに分類されます。企業の規模とBitizensの間には決して一致はありませんが、ポジションの数が噛み付きの数と一致すると仮定することが容易になります。

たとえば、小売業のハットショップがある可能性があります。そのため、BitZensはretailという値が高くなります。上記の例では、Michealは小売業に適しています。

私はアルゴリズム的に、最も関連性の高いBitizensでポジションを埋めることができますか?私は問題を解決しようとしましたが、実際に問題を効果的に解決する方法で私の周りを包み込むのに問題がありました。

+0

さらに詳しい情報を提供できますか? 「ビジネス」の例と最大化する必要があるのは役に立ちます。 – multipleinterfaces

+0

あなたの目標は何ですか?彼らが働いているビジネスに対応する属性の合計を最大にしたいと思いますか? – RoundTower

+0

申し訳ありません。うまくいけば私の意図を明確にするために私の質問を編集しました。全体的に、私は自分のスキルに合った従業員をビジネスに託したいと思います。彼らは彼らが最も熟練しているビジネスに入れているほど簡単ではありません(他の人がより熟練しているかもしれないし、あるいは無駄かもしれません) –

答えて

3

どこに置いても、特別な「ポイント」は同じ価値があるとしましょう。たとえば、クリエイティブとフードの2つのビジネスがある場合、創造力と創造力にそれぞれ20と20を持つことが、それぞれに11を持つよりも常に良いと想定しています。

この場合、問題はAssignment problemの例です。これは、多項式時間、特に時刻O(n^3)において解くことができるという点で「容易」であることが知られている。この問題を解決するための標準的な方法はHungarian algorithmです。私はウィキペディアのページよりもはるかに説明することはできませんが、これは非常に詳細ですが、あなたが何かそこにこだわっている場合は、ただ質問してください。あなたはbitizensや企業の膨大な数を持っている場合は、このアルゴリズムが実行不可能であるように

は、私はこの問題はsimulated annealingevolutionary algorithmsなどのおおよその方法で攻撃するのは非常に従順になると思います。

私の元々の仮定が間違っている場合(たとえば、少なくとも1つのタイプの企業があるとよい場合など)、これらの不正確な方法を試してください。任意の与えられた作業者 - 業務割当順列の価値を反映する目的関数を設計することに集中する。

+0

ありがとう。私は間違いなくそれらのリンクに読書を与えます。良い出発点のように聞こえる。 –

+0

質問が今のように表現されると、それはNP困難です。だから、ヒューリスティックは状況を変えません。希望OPが詳細を追加します。ありがとう – eat

0

属性をすべて一括して最小化する目的が1つしかない場合は、assignment problemで問題を解決できます。そうでなければ、問題はmulti-index assignment problemのようなものです。これはNP困難です。

したがって、合理的な解決方法を理解するために、具体的なケースについて詳しく説明してください。

+0

うーん...はい。私は一種のNP完成と思われる –

関連する問題