3.2. クラウドバランシングの Hello World の実行
hello world アプリケーションサンプルを実行して、Solver を例示します。
手順
- お好きな IDE にこの例をダウンロードして設定します。IDE へのサンプルのダウンロードおよび設定方法は、「IDE (IntelliJ、Eclipse、または Netbeans) での Red Hat Business Optimizer サンプルの実行」 を参照してください。
以下の主要クラス
org.optaplanner.examples.cloudbalancing.app.CloudBalancingHelloWorldで実行設定を作成します。デフォルトでは、クラウドバランシングの Hello World は 120 秒間実行するように設定されています。
結果
このアプリケーションは、以下のコードを実行します。
例3.4 CloudBalancingHelloWorld.java
public class CloudBalancingHelloWorld {
public static void main(String[] args) {
// Build the Solver
SolverFactory<CloudBalance> solverFactory = SolverFactory.createFromXmlResource("org/optaplanner/examples/cloudbalancing/solver/cloudBalancingSolverConfig.xml");
Solver<CloudBalance> solver = solverFactory.buildSolver();
// Load a problem with 400 computers and 1200 processes
CloudBalance unsolvedCloudBalance = new CloudBalancingGenerator().createCloudBalance(400, 1200);
// Solve the problem
CloudBalance solvedCloudBalance = solver.solve(unsolvedCloudBalance);
// Display the result
System.out.println("\nSolved cloudBalance with 400 computers and 1200 processes:\n" + toDisplayString(solvedCloudBalance));
}
...
}このコードサンプルにより、以下が行われます。
Solver の設定をもとに
Solverを構築します (ここでは、クラスパスの XML ファイルcloudBalancingSolverConfig.xmlを使用します)。Solverの構築がこの手順で最も複雑な部分です。詳細は、「Solver の設定」 を参照してください。SolverFactory<CloudBalance> solverFactory = SolverFactory.createFromXmlResource( "org/optaplanner/examples/cloudbalancing/solver/cloudBalancingSolverConfig.xml"); Solver solver<CloudBalance> = solverFactory.buildSolver();問題を読み込みます。
CloudBalancingGeneratorが無作為に問題を生成します。これは、たとえば、データベースなどから、実際の問題を読み込むクラスに置き換えてください。CloudBalance unsolvedCloudBalance = new CloudBalancingGenerator().createCloudBalance(400, 1200);
問題を解決します。
CloudBalance solvedCloudBalance = solver.solve(unsolvedCloudBalance);
結果を表示します。
System.out.println("\nSolved cloudBalance with 400 computers and 1200 processes:\n" + toDisplayString(solvedCloudBalance));