1

私は、ユーザーの自動グループ化の最適化アルゴリズムについて学習しています。しかし、私はこれらのアルゴリズムにはまったく新しいので、関連する文献を見直しながら聞いたことがあります。言い換えれば、記事の1つでは、著者はInteger Programmingを使って独自のアルゴリズムを実装しました(これは私がIPについて聞いたものです)。最適化アルゴリズム(遺伝的または粒子群など)の実装に混合整数線形計画法が使用されています

1は、遺伝的/粒子群(または任意の他の最適化)混合整数線形計画法を用いたアルゴリズムを実装する必要があるか、このオプションのひとつである場合、私は疑問に思って。最後に、ユーザーを自動的にグループ化するWebベースのシステムを構築する必要があります。私はどんな助けにも感謝します。

+1

Michalewicz氏とFogel氏の「近代的なHueristics」は、「これを解決する方法」です。 IPとヒューリスティックの両方の方法について説明します(後者に重点を置いて)。 –

答えて

4

私はあなたが少し言葉を混同していると思います。これらはすべて異なる最適化手法です。 MIP(Mixed Integer Programming)表記を使用して問題を確実に表現できますが、MIPソルバーやGA(遺伝的アルゴリズム)やPSO(Particle Swarm Optimization)を使用して問題を解決できます。

整数プログラミングは、という数学的プログラミングと呼ばれるより伝統的なパラダイムの一部です。問題は、幾分厳密な方程式の集合に基づいてモデル化されています。線形計画法(すべての変数が連続的)、整数計画法、混合整数計画法(連続変数と離散変数の混合)、非線形計画法(数式の一部は線形ではない)など、さまざまなタイプの数学的プログラミングモデルがあります。

数理プログラミングモデルは、モデルに応じて、あなたは、たとえば、理想的なソリューションからどのように遠くに伝えることができ、良いと堅牢です。しかし、これらのモデルは、しばしば多くの変数の問題に苦しんでいます。

一方、遺伝的アルゴリズムおよびPSOは、より小さい最適化技術の枝に属し、メタヒューリスティックと呼ばれることが多い。これらの技法は、大規模で複雑な問題、多くの実用的なアプリケーションであっても、しばしば良いまたは少なくとも合理的な解決策を見つけることができます。

数学モデルとメタヒューリスティックスを組み合わせたハイブリッドアルゴリズムがいくつかあります。この場合、MIPとGA/PSO。どちらのアプローチ(MIP、メタヒューリスティックまたはハイブリッド)が問題に非常に依存するかを選択するには、より効果的なものをテストする必要があります。客観的な機能が非常に複雑で、貧弱ではあるが迅速なソリューションが必要な場合は、メタヒューリスティクスを好むだろう。

+0

お返事ありがとうございました!私がMIPを使用している場合は、問題に応じて独自の数学モデルと目的関数をゼロから提案する必要があります。モデルに多くのパラメータがあり、(私の場合は)ユーザー数が多い場合は、これをお勧めしません。 GA/PSOアルゴリズムを実装し、目的関数をカスタマイズするには、Solvers(IBMまたはMicrosoftの)を使用するか、Python、MIPなどを使用できます。これらの情報を確認してください。 – renakre

+1

さて、あなたの問題に合ったモデル(例えば学術文献など)を見つけたら、新しいモデル/目的関数を提案する必要はありません。もしそうなら、問題の実装方法を学び、最高のソリューションを見つける。 MIPの場合、IBM Cplexはおそらく最高のソルバーですが(高価です)、C/Java/Pythonライブラリーがあり、GA/PSOの場合はPython、Matlab、CまたはJavaライブラリーも参照できます(JMetalは1私は知っている)、あなたが好みの言語で自分のGA/PSOを書くことができます。自分で学習してコード化するのは難しいことではありません。 –

関連する問題