Package net.sf.cpsolver.ifs.solver

Examples of net.sf.cpsolver.ifs.solver.Solver


    public void start() throws InterruptedException {
        DataProperties properties = new DataProperties();
        properties.setProperty("General.Seed", "123321");
        UniTimeSimpleModel model = createModel();
        Solver solver = new Solver(properties);
        condition.init();
        solver.setTerminalCondition(new TerminationCondition() {

            @Override
            public boolean canContinue(Solution sltn) {
                return condition.canContinue() && !statusBar.getMyProgressMonitor().isCanceled();
            }
        });
        Progress p = new Progress();
        p.addProgressListener(new ProgressListener() {

            private String status;

            @Override
            public void statusChanged(String status) {
                this.status = status;
            }

            @Override
            public void phaseChanged(String phase) {
            }

            @Override
            public void progressChanged(long currentProgress, long maxProgress) {
                statusBar.setMessage(status + " " + currentProgress * 100f / maxProgress);
            }

            @Override
            public void progressSaved() {
            }

            @Override
            public void progressRestored() {
            }

            @Override
            public void progressMessagePrinted(Message message) {
                statusBar.setMessage(message.getMessage());
            }
        });
        solver.setProgress(p);
        solver.setInitalSolution(model);
        solver.start();
        solver.getSolverThread().join();

        if (solver.lastSolution().getBestInfo() == null)
            logger.severe("No solution found :-(");

        logger.info("Last solution:" + solver.lastSolution().getInfo());
        logger.info("Best solution:" + solver.lastSolution().getBestInfo());
        Solution best = solver.lastSolution();
        best.restoreBest();
        int value = 0;
        for (Enumeration iv = best.getModel().assignedVariables().elements(); iv.hasMoreElements();) {
            value += (int) ((Variable) iv.nextElement()).getAssignment().toDouble();
        }
View Full Code Here

TOP

Related Classes of net.sf.cpsolver.ifs.solver.Solver

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.