public interface IVariableFactory extends ISelf<Model>
Modifier and Type | Field and Description |
---|---|
static String |
CSTE_NAME
Default prefix for constants
|
Modifier and Type | Method and Description |
---|---|
default BoolVar |
boolVar()
Create a boolean variable, i.e.
|
default BoolVar |
boolVar(boolean value)
Create a constant boolean variable equal to 1 if value is true and 0 otherwise
|
default BoolVar |
boolVar(String name)
Create a boolean variable
|
default BoolVar |
boolVar(String name,
boolean value)
Create a constant boolean variable equal to 1 if value is true and 0 otherwise
|
default BoolVar[] |
boolVarArray(int size)
Create an array of size boolean variables
|
default BoolVar[] |
boolVarArray(String name,
int size)
Create an array of size boolean variables
|
default BoolVar[][] |
boolVarMatrix(int dim1,
int dim2)
Create a dim1*dim2-sized matrix of boolean variables
|
default BoolVar[][] |
boolVarMatrix(String name,
int dim1,
int dim2)
Create a dim1*dim2-sized matrix of boolean variables
|
default void |
checkIntDomainRange(String NAME,
int MIN,
int MAX)
Checks domain range.
|
default void |
checkRealDomainRange(String NAME,
double MIN,
double MAX)
Checks domain range.
|
default String |
generateName()
Return a generated short string, prefixed with
Settings.defaultPrefix()
and followed with a single-use number. |
default String |
generateName(String prefix)
Return a generated short string prefixed with prefix
and followed with a single-use number.
|
default IntVar |
intVar(int value)
Create a constant integer variable equal to value
|
default IntVar |
intVar(int[] values)
Create an integer variable of initial domain values.
|
default IntVar |
intVar(int lb,
int ub)
Create an integer variable of initial domain [lb, ub]
Uses an enumerated domain if ub-lb is small, and a bounded domain otherwise
|
default IntVar |
intVar(int lb,
int ub,
boolean boundedDomain)
Create an integer variable of initial domain [lb, ub]
|
default IntVar |
intVar(String name,
int value)
Create a constant integer variable equal to value
|
default IntVar |
intVar(String name,
int[] values)
Create an integer variable of initial domain values
Uses an enumerated domain that supports holes
|
default IntVar |
intVar(String name,
int lb,
int ub)
Create an integer variable of initial domain [lb, ub]
Uses an enumerated domain if ub-lb is small, and a bounded domain otherwise
|
default IntVar |
intVar(String name,
int lb,
int ub,
boolean boundedDomain)
Create an integer variable of initial domain [lb, ub]
|
default IntVar[] |
intVarArray(int size,
int[] values)
Creates an array of size integer variables, taking their domain in values
|
default IntVar[] |
intVarArray(int size,
int lb,
int ub)
Creates an array of size integer variables, taking their domain in [lb, ub]
|
default IntVar[] |
intVarArray(int size,
int lb,
int ub,
boolean boundedDomain)
Creates an array of size integer variables, taking their domain in [lb, ub]
|
default IntVar[] |
intVarArray(String name,
int size,
int[] values)
Creates an array of size integer variables, taking their domain in values
|
default IntVar[] |
intVarArray(String name,
int size,
int lb,
int ub)
Creates an array of size integer variables, taking their domain in [lb, ub]
|
default IntVar[] |
intVarArray(String name,
int size,
int lb,
int ub,
boolean boundedDomain)
Creates an array of size integer variables, taking their domain in [lb, ub]
|
default IntVar[][] |
intVarMatrix(int dim1,
int dim2,
int[] values)
Creates a matrix of dim1*dim2 integer variables taking their domain in values
|
default IntVar[][] |
intVarMatrix(int dim1,
int dim2,
int lb,
int ub)
Creates a matrix of dim1*dim2 integer variables taking their domain in [lb, ub]
|
default IntVar[][] |
intVarMatrix(int dim1,
int dim2,
int lb,
int ub,
boolean boundedDomain)
Creates a matrix of dim1*dim2 integer variables taking their domain in [lb, ub]
|
default IntVar[][] |
intVarMatrix(String name,
int dim1,
int dim2,
int[] values)
Creates a matrix of dim1*dim2 integer variables taking their domain in values
|
default IntVar[][] |
intVarMatrix(String name,
int dim1,
int dim2,
int lb,
int ub)
Creates a matrix of dim1*dim2 integer variables taking their domain in [lb, ub]
|
default IntVar[][] |
intVarMatrix(String name,
int dim1,
int dim2,
int lb,
int ub,
boolean boundedDomain)
Creates a matrix of dim1*dim2 integer variables taking their domain in [lb, ub]
|
default RealVar |
realVar(double value)
Create a constant real variable equal to value
|
default RealVar |
realVar(double value,
double precision)
Creates a constant real variable equal to value
|
default RealVar |
realVar(double lb,
double ub,
double precision)
Creates a real variable, taking its domain in [lb, ub]
|
default RealVar |
realVar(String name,
double value)
Create a constant real variable equal to value
|
default RealVar |
realVar(String name,
double lb,
double ub,
double precision)
Creates a real variable, taking its domain in [lb, ub]
|
default RealVar[] |
realVarArray(int size,
double lb,
double ub,
double precision)
Creates an array of size real variables, each of domain [lb, ub]
|
default RealVar[] |
realVarArray(String name,
int size,
double lb,
double ub,
double precision)
Creates an array of size real variables, each of domain [lb, ub]
|
default RealVar[][] |
realVarMatrix(int dim1,
int dim2,
double lb,
double ub,
double precision)
Creates a matrix of dim1*dim2 real variables, each of domain [lb, ub]
|
default RealVar[][] |
realVarMatrix(String name,
int dim1,
int dim2,
double lb,
double ub,
double precision)
Creates a matrix of dim1*dim2 real variables, each of domain [lb, ub]
|
default SetVar |
setVar(int... value)
Creates a constant set variable, equal to value
|
default SetVar |
setVar(int[] lb,
int[] ub)
Creates a set variable taking its domain in [lb, ub],
For instance [{0,3},{-2,0,2,3}] means the variable must include both 0 and 3 and can additionnaly include -2, and 2
|
default SetVar |
setVar(String name,
int... value)
Creates a constant set variable, equal to value
|
default SetVar |
setVar(String name,
int[] lb,
int[] ub)
Creates a set variable taking its domain in [lb, ub],
For instance [{0,3},{-2,0,2,3}] means the variable must include both 0 and 3 and can additionnaly include -2, and 2
|
default SetVar[] |
setVarArray(int size,
int[] lb,
int[] ub)
Creates an array of size set variables, taking their domain in [lb, ub]
|
default SetVar[] |
setVarArray(String name,
int size,
int[] lb,
int[] ub)
Creates an array of size set variables, taking their domain in [lb, ub]
|
default SetVar[][] |
setVarMatrix(int dim1,
int dim2,
int[] lb,
int[] ub)
Creates a matrix of dim1*dim2 set variables, taking their domain in [lb, ub]
|
default SetVar[][] |
setVarMatrix(String name,
int dim1,
int dim2,
int[] lb,
int[] ub)
Creates a matrix of dim1*dim2 set variables, taking their domain in [lb, ub]
|
default Task |
taskVar(IntVar s,
int p)
Creates a task variable, based on a starting time s and a processing time p
such that: s + p = e, where e is the ending time.
|
default Task |
taskVar(IntVar s,
IntVar p)
Creates a task variable, based on a starting time s and a processing time p
such that: s + p = e, where e is the ending time.
|
default Task |
taskVar(IntVar s,
IntVar p,
IntVar e)
Creates a task variable, made of a starting time s,
a processing time p and an ending time e such that: s + p = e.
|
default Task[] |
taskVarArray(IntVar[] s,
IntVar[] p,
IntVar[] e)
Creates an array of s.length task variables,
where task i is made of a starting time s_i,
a processing time p_i and an ending time e_i such that: s_i + p_i = e_i.
|
default Task[][] |
taskVarMatrix(IntVar[][] s,
IntVar[][] p,
IntVar[][] e)
Creates a matrix of s.length * s_0.length task variables,
where task i,j is made of a starting time s_(i,j),
a processing time p_(i,j) and an ending time e_(i,j) such that:
s_(i,j) + p_(i,j) = e_(i,j).
|
default BoolVar[] |
toBoolVar(IntVar... ivars)
Converts ivars into an array of boolean variables
|
static final String CSTE_NAME
default BoolVar boolVar(boolean value)
value
- constant value of the boolean variable (true or false)default BoolVar boolVar(String name, boolean value)
name
- name of the variablevalue
- constant value of the boolean variable (true or false)default BoolVar boolVar()
default BoolVar boolVar(String name)
name
- name of the variabledefault BoolVar[] boolVarArray(int size)
size
- number of variable to createdefault BoolVar[] boolVarArray(String name, int size)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variable to createdefault BoolVar[][] boolVarMatrix(int dim1, int dim2)
dim1
- number of rows in the matrixdim2
- number of columns in the matrixdefault BoolVar[][] boolVarMatrix(String name, int dim1, int dim2)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of rows in the matrixdim2
- number of columns in the matrixdefault IntVar intVar(int value)
value
- constant value of the variabledefault IntVar intVar(int[] values)
values
- initial domain of the variabledefault IntVar intVar(int lb, int ub)
lb
- initial domain lower boundub
- initial domain upper bounddefault IntVar intVar(int lb, int ub, boolean boundedDomain)
lb
- initial domain lower boundub
- initial domain upper boundboundedDomain
- specifies whether to use a bounded domain or an enumerated domaindefault IntVar intVar(String name, int value)
name
- name of the variablevalue
- value of the variabledefault IntVar intVar(String name, int lb, int ub, boolean boundedDomain)
name
- name of the variablelb
- initial domain lower boundub
- initial domain upper boundboundedDomain
- specifies whether to use a bounded domain or an enumerated domaindefault IntVar intVar(String name, int lb, int ub)
name
- name of the variablelb
- initial domain lower boundub
- initial domain upper bounddefault IntVar intVar(String name, int[] values)
name
- name of the variablevalues
- initial domaindefault IntVar[] intVarArray(int size, int[] values)
size
- number of variablesvalues
- initial domain of each variabledefault IntVar[] intVarArray(int size, int lb, int ub)
size
- number of variableslb
- initial domain lower bound of each variableub
- initial domain upper bound of each variabledefault IntVar[] intVarArray(int size, int lb, int ub, boolean boundedDomain)
size
- number of variableslb
- initial domain lower bound of each variableub
- initial domain upper bound of each variableboundedDomain
- specifies whether to use bounded domains or enumerated domains for each variabledefault IntVar[] intVarArray(String name, int size, int lb, int ub, boolean boundedDomain)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variableslb
- initial domain lower bound of each variableub
- initial domain upper bound of each variableboundedDomain
- specifies whether to use bounded domains or enumerated domains for each variabledefault IntVar[] intVarArray(String name, int size, int lb, int ub)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variableslb
- initial domain lower bound of each variableub
- initial domain upper bound of each variabledefault IntVar[] intVarArray(String name, int size, int[] values)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variablesvalues
- initial domain of each variabledefault IntVar[][] intVarMatrix(int dim1, int dim2, int[] values)
dim1
- number of rows in the matrixdim2
- number of columns in the matrixvalues
- initial domain of each variabledefault IntVar[][] intVarMatrix(int dim1, int dim2, int lb, int ub)
dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of each variableub
- initial domain upper bound of each variabledefault IntVar[][] intVarMatrix(int dim1, int dim2, int lb, int ub, boolean boundedDomain)
dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of each variableub
- initial domain upper bound of each variableboundedDomain
- specifies whether to use bounded domains or enumerated domains for each variabledefault IntVar[][] intVarMatrix(String name, int dim1, int dim2, int lb, int ub, boolean boundedDomain)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of each variableub
- initial domain upper bound of each variableboundedDomain
- specifies whether to use bounded domains or enumerated domains for each variabledefault IntVar[][] intVarMatrix(String name, int dim1, int dim2, int lb, int ub)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of each variableub
- initial domain upper bound of each variabledefault IntVar[][] intVarMatrix(String name, int dim1, int dim2, int[] values)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of rows in the matrixdim2
- number of columns in the matrixvalues
- initial domain of each variabledefault Task taskVar(IntVar s, int p)
Task.ensureBoundConsistency()
is required before launching the resolution,
this will not be done automatically.s
- integer variable, starting timep
- fixed processing timedefault Task taskVar(IntVar s, IntVar p)
Task.ensureBoundConsistency()
is required before launching the resolution,
this will not be done automatically.s
- integer variable, starting timep
- fixed processing timedefault Task taskVar(IntVar s, IntVar p, IntVar e)
Task.ensureBoundConsistency()
is required before launching the resolution,
this will not be done automatically.s
- integer variable, starting timep
- integer variable, processing timee
- integer variable, ending timedefault Task[] taskVarArray(IntVar[] s, IntVar[] p, IntVar[] e)
Task.ensureBoundConsistency()
is required before launching the resolution,
this will not be done automatically.s
- integer variables, starting timesp
- integer variables, processing timese
- integer variables, ending timesdefault Task[][] taskVarMatrix(IntVar[][] s, IntVar[][] p, IntVar[][] e)
Task.ensureBoundConsistency()
is required before launching the resolution,
this will not be done automatically.s
- integer variables, starting timesp
- integer variables, processing timese
- integer variables, ending timesdefault RealVar realVar(double value)
value
- constant value of the variabledefault RealVar realVar(String name, double value)
name
- name of the variablevalue
- value of the variabledefault RealVar realVar(double value, double precision)
value
- constant value of the variableprecision
- double precision (e.g., 0.00001d)default RealVar realVar(double lb, double ub, double precision)
lb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default RealVar realVar(String name, double lb, double ub, double precision)
name
- variable namelb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default RealVar[] realVarArray(int size, double lb, double ub, double precision)
size
- number of variableslb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default RealVar[] realVarArray(String name, int size, double lb, double ub, double precision)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variableslb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default RealVar[][] realVarMatrix(int dim1, int dim2, double lb, double ub, double precision)
dim1
- number of matrix rowsdim2
- number of matrix columnslb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default RealVar[][] realVarMatrix(String name, int dim1, int dim2, double lb, double ub, double precision)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of matrix rowsdim2
- number of matrix columnslb
- initial domain lower boundub
- initial domain upper boundprecision
- double precision (e.g., 0.00001d)default SetVar setVar(int[] lb, int[] ub)
lb
- initial domain lower bound (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound (contains potential elements)default SetVar setVar(int... value)
value
- value of the set variable, e.g. {0,4,9}default SetVar setVar(String name, int[] lb, int[] ub)
name
- name of the variablelb
- initial domain lower bound (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound (contains potential elements)default SetVar setVar(String name, int... value)
name
- name of the variablevalue
- value of the set variable, e.g. {0,4,9}default SetVar[] setVarArray(int size, int[] lb, int[] ub)
size
- number of variableslb
- initial domain lower bound of every variable (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound of every variable (contains potential elements)default SetVar[] setVarArray(String name, int size, int[] lb, int[] ub)
name
- prefix name of the variables to create. The ith variable will be named name[i]size
- number of variableslb
- initial domain lower bound of every variable (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound of every variable (contains potential elements)default SetVar[][] setVarMatrix(int dim1, int dim2, int[] lb, int[] ub)
dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of every variable (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound of every variable (contains potential elements)default SetVar[][] setVarMatrix(String name, int dim1, int dim2, int[] lb, int[] ub)
name
- prefix name of the variables to create. The variable in row i and col j will be named name[i][j]dim1
- number of rows in the matrixdim2
- number of columns in the matrixlb
- initial domain lower bound of every variable (contains mandatory elements that should be present in every solution)ub
- initial domain upper bound of every variable (contains potential elements)default void checkIntDomainRange(String NAME, int MIN, int MAX)
NAME
- name of the variableMIN
- lower bound of the domainMAX
- upper bound of the domaindefault void checkRealDomainRange(String NAME, double MIN, double MAX)
NAME
- name of the variableMIN
- lower bound of the domainMAX
- upper bound of the domaindefault BoolVar[] toBoolVar(IntVar... ivars)
ivars
- an IntVar array containing only boolean variablesClassCastException
- if one variable is not a BoolVardefault String generateName()
Settings.defaultPrefix()
and followed with a single-use number.Copyright © 2018. All rights reserved.