All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.chocosolver.examples.nqueen.NQueenBinary Maven / Gradle / Ivy

/*
 * This file is part of examples, http://choco-solver.org/
 *
 * Copyright (c) 2023, IMT Atlantique. All rights reserved.
 *
 * Licensed under the BSD 4-clause license.
 *
 * See LICENSE file in the project root for full license information.
 */
package org.chocosolver.examples.nqueen;

import org.chocosolver.solver.Model;
import org.chocosolver.solver.constraints.Constraint;

import java.util.HashSet;
import java.util.stream.IntStream;

import static org.chocosolver.solver.search.strategy.Search.inputOrderLBSearch;

/**
 * 
* * @author Charles Prud'homme * @since 31/03/11 */ public class NQueenBinary extends AbstractNQueen { HashSet set; @Override public void buildModel() { model = new Model("NQueen"); vars = model.intVarArray("Q", n, 1, n); IntStream.range(0, n-1).forEach(i -> IntStream.range(i+1, n).forEach(j ->{ model.arithm(vars[i], "!=", vars[j]).post(); model.arithm(vars[i], "!=", vars[j], "-", j - i).post(); model.arithm(vars[i], "!=", vars[j], "+", j - i).post(); }) ); } @Override public void configureSearch() { model.getSolver().setSearch(inputOrderLBSearch(vars)); // model.getSolver().showSolutions(); } @Override public void solve() { model.getSolver().findAllSolutions(); model.getSolver().printShortStatistics(); } public static void main(String[] args) { new NQueenBinary().execute(args); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy