/*
* Copyright © 2010 by Ondrej Skalicka. All Rights Reserved
*/
package demopackage;
import cz.cvut.felk.cig.jcop.algorithm.graphsearch.bfs.BreadthFirstSearch;
import cz.cvut.felk.cig.jcop.problem.knapsack.Knapsack;
import cz.cvut.felk.cig.jcop.result.render.XMLRender;
import cz.cvut.felk.cig.jcop.solver.SimpleSolver;
import cz.cvut.felk.cig.jcop.solver.Solver;
import java.io.File;
import java.io.IOException;
/**
* @author Ondrej Skalicka
*/
public class DemoTemp {
public static void main(String[] args) throws IOException {
/*MultiSolver solver = new MultiSolver();
// add some algorithms
solver.addAlgorithm(new DepthFirstSearch());
solver.addAlgorithm(new SimulatedAnnealing());
// add some problems
solver.addProblem(new JobShop(Arrays.asList(3, 2, 1, 2), 3));
solver.addProblem(new TSP(new Integer[][]{{0, 5, 2}, {4, 0, 2}, {5, 6, 0},}));
// add some stop conditions
solver.addStopCondition(new TimeoutCondition(1000)); // top 1 sec
// run it
solver.run();
// render to console
solver.render();*/
/*Problem problem = new Bucket(new int[]{14, 10, 6, 2, 8}, new int[]{0, 0, 1, 0, 0}, new int[]{12, 6, 4, 1, 8});
List<Integer> jobs = new ArrayList<Integer>(5);
jobs.add(5);
jobs.add(4);
jobs.add(6);
jobs.add(2);
jobs.add(2);
JobShop jobShop = new JobShop(jobs, 3);*/
// Knapsack knapsack = new Knapsack("9000 4 100 18 114 42 136 88 192 3 223");
// SAT sat = new SAT(new File("data/sat/easy.cnf"));
/*TSP tsp = new TSP(new Integer[][]{
{ 0, 20, 42, 35},
{20, 0, 30, 34},
{42, 30, 0, 53},
{35, 34, 53, 0},
});
SimpleSolver simpleSolver = new SimpleSolver(new BreadthFirstSearch(), tsp);
simpleSolver.run();
simpleSolver.render();*/
/* AlgorithmCompareSolver solver = new AlgorithmCompareSolver(new SAT(new File("data/sat/valid-standard.cnf")));
// add algorithms
solver.addAlgorithm(new DepthFirstSearch());
solver.addAlgorithm(new BreadthFirstSearch());
solver.addAlgorithm(new SimulatedAnnealing());
solver.addAlgorithm(new SimulatedAnnealing(100, 0.999));
solver.addAlgorithm(new SimulatedAnnealing(10, 0.90));
// add stop condition
solver.addStopCondition(new TimeoutCondition(100)); // every algorithm 100 ms
solver.addRender(new SimpleCompareRender());
solver.run();
solver.render();*/
// AlgorithmCompareSolver solver = new AlgorithmCompareSolver(new Knapsack("9000 4 100 18 114 42 136 88 192 3 223"));
//
// // add algorithms
// solver.addAlgorithm(new DepthFirstSearch());
// solver.addAlgorithm(new BreadthFirstSearch());
// solver.addAlgorithm(new SimulatedAnnealing());
// solver.addAlgorithm(new SimulatedAnnealing(100, 0.999));
// solver.addAlgorithm(new SimulatedAnnealing(10, 0.90));
//
// // add stop condition
// solver.addStopCondition(new TimeoutCondition(100)); // every algorithm 100 ms
//
// solver.run();
//
// // output to console
// solver.addRender(new SimpleRender(SimpleRender.OUTPUT_STANDARD));
// solver.addRender(new SimpleRender(SimpleRender.OUTPUT_MINI));
//
// // output to txt file
// solver.addRender(new SimpleRender(SimpleRender.OUTPUT_FULL, new File("../demo/data/demo-output-full.txt")));
// solver.addRender(new SimpleRender(SimpleRender.OUTPUT_STANDARD, new File("../demo/data/demo-output-standard.txt")));
// solver.addRender(new SimpleRender(SimpleRender.OUTPUT_MINI, new File("../demo/data/demo-output-mini.txt")));
//
// // output to xml file
// solver.addRender(new XMLRender(new File("../demo/data/demo-output.xml")));
//
// // output to csv file
// solver.addRender(new CSVRender(new File("../demo/data/demo-output.csv")));
//
// // output to csv file in MS Office format
// CSVRender csvRender = new CSVRender(new File("../demo/data/demo-output-ms.csv"));
// csvRender.setDelimiter(';');
// solver.addRender(csvRender);
//
//
// // render results
// solver.render();
/* Solver solver = new SimpleSolver(new BreadthFirstSearch(), new Knapsack("9000 4 100 18 114 42 136 88 192 3 223"));
// Output to System.out
solver.addRender(new CSVRender());
// Output to file
solver.addRender(new CSVRender(new File("output-file.csv")));
// Output to directly specified OutputStream
solver.addRender(new CSVRender(System.out));
// ISO-8859-1 charset, ';' delimiter
CSVRender csvRender = new CSVRender();
csvRender.setDelimiter(';');
csvRender.setCharset(Charset.forName("ISO-8859-1"));
solver.run();
solver.render();*/
/*Solver solver = new SimpleSolver(new BreadthFirstSearch(), new Knapsack("9000 4 100 18 114 42 136 88 192 3 223"));
solver.addRender(new ExceptionRender());
// Output to console
solver.addRender(new SimpleCompareRender());
// Output to file
solver.addRender(new SimpleCompareRender(new File("output-file.txt")));
// Output to directly specified PrintStream
solver.addRender(new SimpleCompareRender(System.out));
solver.run();
solver.render();*/
/*Solver solver = new SimpleSolver(new DepthFirstSearch(), new SAT(new File("data/sat/valid-standard.cnf")));
// Output standard info to console
solver.addRender(new SimpleRender(SimpleRender.OUTPUT_STANDARD));
// Output minimal info to specified PrintStream
solver.addRender(new SimpleRender(SimpleRender.OUTPUT_MINI, System.out));
// Output full into to file
solver.addRender(new SimpleRender(SimpleRender.OUTPUT_FULL, new File("output-file.txt")));
solver.addStopCondition(new TimeoutCondition(100));
solver.run();
solver.render();*/
Solver solver = new SimpleSolver(new BreadthFirstSearch(), new Knapsack("9000 4 100 18 114 42 136 88 192 3 223"));
solver.addRender(new XMLRender(new File("output-file.xml")));
solver.run();
solver.render();
}
}