Search in sources :

Example 1 with Term

use of org.tweetyproject.math.term.Term in project TweetyProject by TweetyProjectTeam.

the class SimulatedAnnealingOnConstrProbEx2 method createConstraintSatProb1.

/**
 * constrcutor
 * @return problem
 */
public static OptimizationProblem createConstraintSatProb1() {
    FloatVariable m1 = new FloatVariable("Machine 1", -100, 100);
    FloatVariable m2 = new FloatVariable("Machine 2", -100, 100);
    Inequation constr1 = new Inequation(m1, new IntegerConstant(10), 3);
    Inequation constr2 = new Inequation(m2, new IntegerConstant(12), 1);
    Inequation constr3 = new Inequation(m1, new IntegerConstant(50), 1);
    Inequation constr4 = new Inequation(m2, new IntegerConstant(0), 3);
    Collection<Statement> constraints = new ArrayList<Statement>();
    constraints.add(constr1);
    constraints.add(constr2);
    constraints.add(constr3);
    constraints.add(constr4);
    OptimizationProblem prob = new OptimizationProblem(0);
    prob.addAll(constraints);
    // Target funcion = (m1+1)^2+m2^2
    Term opt = new Sum(new Power(new Sum(m1, new IntegerConstant(1)), new IntegerConstant(2)), new Power(m2, new IntegerConstant(2)));
    ((OptimizationProblem) prob).setTargetFunction(opt);
    return prob;
}
Also used : Inequation(org.tweetyproject.math.equation.Inequation) Statement(org.tweetyproject.math.equation.Statement) OptimizationProblem(org.tweetyproject.math.opt.problem.OptimizationProblem) Sum(org.tweetyproject.math.term.Sum) Term(org.tweetyproject.math.term.Term) FloatVariable(org.tweetyproject.math.term.FloatVariable) IntegerConstant(org.tweetyproject.math.term.IntegerConstant) Power(org.tweetyproject.math.term.Power)

Example 2 with Term

use of org.tweetyproject.math.term.Term in project TweetyProject by TweetyProjectTeam.

the class SimulatedAnnealingOnConstrProbEx2 method main.

/**
 * main method
 * @param args arguments
 *
 * @throws GeneralMathException GeneralMathException
 */
public static void main(String[] args) throws ParserException, GeneralMathException {
    // Create toy problem
    OptimizationProblem prob = createConstraintSatProb1();
    // Create starting point; all variables start at 0
    // solve via SimAn
    SimulatedAnnealingOnConstrProb solver = new SimulatedAnnealingOnConstrProb(1000000, 1, 10000);
    Map<Variable, Term> solution = solver.solve(prob);
    System.out.println(solution.toString());
}
Also used : Variable(org.tweetyproject.math.term.Variable) FloatVariable(org.tweetyproject.math.term.FloatVariable) OptimizationProblem(org.tweetyproject.math.opt.problem.OptimizationProblem) Term(org.tweetyproject.math.term.Term)

Example 3 with Term

use of org.tweetyproject.math.term.Term in project TweetyProject by TweetyProjectTeam.

the class StochasticLocalSearchOnConstrProbEx method main.

/**
 * main method
 * @param args arguments
 *
 * @throws ParserException ParserException
 * @throws GeneralMathException GeneralMathExceptions
 */
public static void main(String[] args) throws ParserException, GeneralMathException {
    // Create toy problem
    OptimizationProblem prob = createConstraintSatProb1();
    // Create starting point; all variables start at 0
    // solve via SimAn
    StochasticLocalSearchOnConstrProb solver = new StochasticLocalSearchOnConstrProb(5000, 1000, 0.5);
    Map<Variable, Term> solution = solver.solve(prob);
    System.out.println(solution.toString());
}
Also used : Variable(org.tweetyproject.math.term.Variable) FloatVariable(org.tweetyproject.math.term.FloatVariable) OptimizationProblem(org.tweetyproject.math.opt.problem.OptimizationProblem) Term(org.tweetyproject.math.term.Term)

Example 4 with Term

use of org.tweetyproject.math.term.Term in project TweetyProject by TweetyProjectTeam.

the class StochasticLocalSearchOnConstrProbEx method createConstraintSatProb1.

/**
 * constructor
 * @return problem
 */
public static OptimizationProblem createConstraintSatProb1() {
    FloatVariable m1 = new FloatVariable("Machine 1", -100, 100);
    FloatVariable m2 = new FloatVariable("Machine 2", -100, 100);
    Inequation constr1 = new Inequation(m1, new IntegerConstant(10), 3);
    Inequation constr2 = new Inequation(m2, new IntegerConstant(12), 1);
    Inequation constr3 = new Inequation(m1, new IntegerConstant(50), 1);
    Inequation constr4 = new Inequation(m2, new IntegerConstant(0), 3);
    Collection<Statement> constraints = new ArrayList<Statement>();
    constraints.add(constr1);
    constraints.add(constr2);
    constraints.add(constr3);
    constraints.add(constr4);
    OptimizationProblem prob = new OptimizationProblem(0);
    prob.addAll(constraints);
    // Target funcion = (m1+1)^2+m2^2
    Term opt = new Sum(new Power(new Sum(m1, new IntegerConstant(1)), new IntegerConstant(2)), new Power(m2, new IntegerConstant(2)));
    ((OptimizationProblem) prob).setTargetFunction(opt);
    return prob;
}
Also used : Inequation(org.tweetyproject.math.equation.Inequation) Statement(org.tweetyproject.math.equation.Statement) OptimizationProblem(org.tweetyproject.math.opt.problem.OptimizationProblem) Sum(org.tweetyproject.math.term.Sum) Term(org.tweetyproject.math.term.Term) FloatVariable(org.tweetyproject.math.term.FloatVariable) IntegerConstant(org.tweetyproject.math.term.IntegerConstant) Power(org.tweetyproject.math.term.Power)

Example 5 with Term

use of org.tweetyproject.math.term.Term in project TweetyProject by TweetyProjectTeam.

the class TravelingSalesmanEx2 method main.

/**
 * main method
 * @param args arguments
 */
public static void main(String[] args) {
    int numberOfCities = 20;
    // create a list of numberOfCities random cities (defined by their x- and y- coordinate)
    ArrayList<ElementOfCombinatoricsProb> elems = new ArrayList<ElementOfCombinatoricsProb>();
    for (int i = 0; i < numberOfCities; i++) {
        ElementOfCombinatoricsProb x = new ElementOfCombinatoricsProb(new ArrayList<Term>());
        x.components.add(new IntegerConstant((int) (Math.random() * 10) + 1));
        x.components.add(new IntegerConstant((int) (Math.random() * 10) + 1));
        elems.add(x);
    }
    // create the problem
    TravelingSalesman test = new TravelingSalesman(elems);
    // solve the problem with a tabu size of 5, max 100000 iterations and max 2000 iterations without an improvement to the best solution
    TabuSearch ts = new TabuSearch(100000, 5, 2000);
    ArrayList<ElementOfCombinatoricsProb> initial = new ArrayList<ElementOfCombinatoricsProb>();
    for (ElementOfCombinatoricsProb i : elems) initial.add(i);
    System.out.println("Mysol: " + ts.solve(test));
}
Also used : ElementOfCombinatoricsProb(org.tweetyproject.math.term.ElementOfCombinatoricsProb) ArrayList(java.util.ArrayList) TabuSearch(org.tweetyproject.math.opt.solver.TabuSearch) Term(org.tweetyproject.math.term.Term) IntegerConstant(org.tweetyproject.math.term.IntegerConstant)

Aggregations

Term (org.tweetyproject.math.term.Term)102 FloatConstant (org.tweetyproject.math.term.FloatConstant)66 Variable (org.tweetyproject.math.term.Variable)59 FloatVariable (org.tweetyproject.math.term.FloatVariable)56 IntegerConstant (org.tweetyproject.math.term.IntegerConstant)56 OptimizationProblem (org.tweetyproject.math.opt.problem.OptimizationProblem)45 HashMap (java.util.HashMap)43 ArrayList (java.util.ArrayList)28 GeneralMathException (org.tweetyproject.math.GeneralMathException)26 Statement (org.tweetyproject.math.equation.Statement)20 Sum (org.tweetyproject.math.term.Sum)20 Equation (org.tweetyproject.math.equation.Equation)19 Power (org.tweetyproject.math.term.Power)18 Inequation (org.tweetyproject.math.equation.Inequation)17 ConstraintSatisfactionProblem (org.tweetyproject.math.opt.problem.ConstraintSatisfactionProblem)17 ElementOfCombinatoricsProb (org.tweetyproject.math.term.ElementOfCombinatoricsProb)12 HashSet (java.util.HashSet)7 Argument (org.tweetyproject.arg.dung.syntax.Argument)7 PlFormula (org.tweetyproject.logics.pl.syntax.PlFormula)7 IntegerVariable (org.tweetyproject.math.term.IntegerVariable)7