|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|
A solver for a general problem. More...
Public Member Functions | |
| void | setProblem (P problem) |
| Sets the problem. | |
| void | setFactory (AgentFactory< V, U > factory) |
| Sets the agent factory. | |
| void | setDomClass (Class< V > domClass) |
| Sets the class for variable values. | |
| void | setUtilClass (Class< U > utilClass) |
| Sets the class for utility values. | |
| Document | getAgentDesc () |
| abstract List<? extends StatsReporter > | getSolGatherers () |
| abstract S | buildSolution () |
| S | solve (Document problem) |
| Solves the input problem. | |
| S | solve (P problem) |
| Solves the input problem. | |
| S | solve (Document problem, Long timeout) |
| Solves the input problem. | |
| S | solve (P problem, Long timeout) |
| Solves the input problem. | |
| S | solve (Document problem, boolean cleanAfterwards) |
| Solves the input problem. | |
| S | solve (P problem, boolean cleanAfterwards) |
| Solves the input problem. | |
| S | solve (Document problem, int nbrElectionRounds) |
| Solves the input problem. | |
| S | solve (P problem, int nbrElectionRounds) |
| Solves the input problem. | |
| S | solve (Document problem, int nbrElectionRounds, boolean measureMsgs) |
| Solves the input problem. | |
| S | solve (P problem, int nbrElectionRounds, boolean measureMsgs) |
| Solves the input problem. | |
| S | solve (Document problem, int nbrElectionRounds, boolean measureMsgs, Long timeout) |
| Solves the input problem. | |
| S | solve (P problem, int nbrElectionRounds, boolean measureMsgs, Long timeout) |
| Solves the input problem. | |
| S | solve (Document problem, int nbrElectionRounds, Long timeout) |
| Solves the input problem. | |
| S | solve (P problem, int nbrElectionRounds, Long timeout) |
| Solves the input problem. | |
| S | solve (Document problem, int nbrElectionRounds, boolean measureMsgs, Long timeout, boolean cleanAfterwards) |
| Solves the input problem. | |
| S | solve (P problem, int nbrElectionRounds, boolean measureMsgs, Long timeout, boolean cleanAfterwards) |
| Solves the input problem. | |
| S | solve (Document problem, boolean cleanAfterwards, Long timeout) |
| Solves the input problem. | |
| S | solve (P problem, boolean cleanAfterwards, Long timeout) throws OutOfMemoryError |
| Solves the input problem. | |
| String | plotStats (Solution< V, U > sol) |
| Puts the statistics in a format that can easily be processed after the experiments. | |
| String | plotDummyStats (boolean maximize) |
| Used when the solver was not able to solve the problem. | |
| boolean | timedOut () |
| boolean | outOfMem () |
Protected Member Functions | |
| AbstractSolver () | |
| Dummy constructor. | |
| AbstractSolver (String agentDescFile) | |
| Constructor from an agent configuration file. | |
| AbstractSolver (String agentDescFile, boolean useTCP) | |
| Constructor from an agent configuration file. | |
| AbstractSolver (Document agentDesc) | |
| Constructor. | |
| AbstractSolver (String agentDesc, boolean measureTime, boolean useTCP, boolean measureMsgs, Class<? extends XCSPparser< V, U > > parserClass, Class< V > assignmentClass, Class< U > valuationClass) | |
| Constructor from an agent configuration file. | |
| AbstractSolver (Document agentDesc, boolean useTCP) | |
| Constructor. | |
| AbstractSolver (Document agentDesc, Class< ? extends XCSPparser< V, U > > parserClass) | |
| Constructor. | |
| AbstractSolver (Document agentDesc, Class< ? extends XCSPparser< V, U > > parserClass, boolean useTCP) | |
| Constructor. | |
| void | clear () |
| Clears the parser. | |
Protected Attributes | |
| Document | agentDesc |
| Description of the agent to be used. | |
| AgentFactory< V, U > | factory |
| The agent factory. | |
| Class< ? extends XCSPparser< V, U > > | parserClass |
| The class of the parser to be used. | |
| List<? extends StatsReporter > | solGatherers |
| The list of modules that record statistics about problem solving. | |
| P | problem |
| The problem. | |
| final boolean | useTCP |
| Whether to use TCP pipes or shared memory pipes. | |
Private Member Functions | |
| void | setParserClass () |
| Sets the parser class as specified in the agent configuration file. | |
Private Attributes | |
| boolean | timedOut |
true when the solver timed out, false otherwise | |
| boolean | outOfMem |
true when the solver ran out of memory, false otherwise | |
A solver for a general problem.
| <P> | type used for the problem |
| <V> | type used for variable values |
| <U> | type used for utility values |
| <S> | type used for the solution |
|
protected |
Dummy constructor.
|
protected |
Constructor from an agent configuration file.
| agentDescFile | the agent configuration file |
|
protected |
Constructor from an agent configuration file.
| agentDescFile | the agent configuration file |
| useTCP | Whether to use TCP pipes or shared memory pipes |
References frodo2.algorithms.XCSPparser< V extends Addable< V >, U extends Addable< U > >.parse(), setParserClass(), and useTCP.

|
protected |
|
protected |
Constructor from an agent configuration file.
| agentDesc | the path to the agent description file |
| measureTime | whether to measure simulated time |
| useTCP | whether to use TCP pipes instead of shared memory (if true, disables the simulated time metric) |
| measureMsgs | whether to measure messages |
| parserClass | The class of the parser to be used |
| assignmentClass | the class of variable assignments |
| valuationClass | the class of valuations |
References agentDesc, parserClass, and useTCP.
|
protected |
Constructor.
| agentDesc | a JDOM Document for the agent description |
| useTCP | Whether to use TCP pipes or shared memory pipes |
References agentDesc, setParserClass(), and useTCP.

|
protected |
Constructor.
| agentDesc | The agent description |
| parserClass | The class of the parser to be used |
References agentDesc, and parserClass.
|
protected |
Constructor.
| agentDesc | The agent description |
| parserClass | The class of the parser to be used |
| useTCP | Whether to use TCP pipes or shared memory pipes |
References agentDesc, parserClass, and useTCP.
|
abstract |
Referenced by solve(), and frodo2.controller.userIO.DistributedSolver< V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve().
|
protected |
| Document frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.getAgentDesc | ( | ) |
|
abstract |
Referenced by solve(), and frodo2.controller.userIO.DistributedSolver< V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve().
| boolean frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.outOfMem | ( | ) |
true when the solver ran out of memory, false otherwise | String frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.plotDummyStats | ( | boolean | maximize | ) |
Used when the solver was not able to solve the problem.
| maximize | true when maximizing, false otherwise |
| String frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.plotStats | ( | Solution< V, U > | sol | ) |
Puts the statistics in a format that can easily be processed after the experiments.
| sol | the solution to be printed |
References frodo2.algorithms.Solution< V, U >.getNbrMsgs(), frodo2.algorithms.Solution< V, U >.getNcccCount(), frodo2.algorithms.Solution< V, U >.getTimeNeeded(), frodo2.algorithms.Solution< V, U >.getTotalMsgSize(), frodo2.algorithms.Solution< V, U >.getTreeWidth(), and frodo2.algorithms.Solution< V, U >.getUtility().

| void frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.setDomClass | ( | Class< V > | domClass | ) |
Sets the class for variable values.
| domClass | the class for variable values |
| void frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.setFactory | ( | AgentFactory< V, U > | factory | ) |
|
private |
Sets the parser class as specified in the agent configuration file.
References agentDesc, and setParserClass().
Referenced by AbstractSolver(), AbstractSolver(), and setParserClass().

| void frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.setProblem | ( | P | problem | ) |
Sets the problem.
| problem | the problem |
References problem.
Referenced by frodo2.controller.userIO.DistributedSolver< V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve().
| void frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.setUtilClass | ( | Class< U > | utilClass | ) |
Sets the class for utility values.
| utilClass | the class for utility values |
Referenced by frodo2.algorithms.maxsum.tests.MaxSumTests< V extends Addable< V >, U extends Addable< U > >.test(), and frodo2.solutionSpaces.vehiclerouting.test.VRPtests.test().
| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem | ) |
Solves the input problem.
| problem | the problem |
References problem, and solve().
Referenced by solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), solve(), and solve().

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| boolean | cleanAfterwards ) |
| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| boolean | cleanAfterwards, | ||
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| cleanAfterwards | if true, cleans all the agents and the queue when they're done |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| int | nbrElectionRounds ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
References problem, and solve().

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
References problem, and solve().

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs, | ||
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs, | ||
| Long | timeout, | ||
| boolean | cleanAfterwards ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
| timeout | timeout in ms, if null, no timeout is used |
| cleanAfterwards | if true, cleans all the agents and the queue when they're done |
References agentDesc, problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| int | nbrElectionRounds, | ||
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | Document | problem, |
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem | ) |
| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| boolean | cleanAfterwards ) |
| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| boolean | cleanAfterwards, | ||
| Long | timeout ) throws OutOfMemoryError |
Solves the input problem.
| problem | the problem |
| cleanAfterwards | if true, cleans all the agents and the queue when they're done |
| timeout | timeout in ms, if null, no timeout is used |
| OutOfMemoryError | thrown when an out of memory exception is encountered in the agent factory |
References agentDesc, buildSolution(), clear(), factory, getSolGatherers(), outOfMem, problem, frodo2.algorithms.AgentFactory< V extends Addable< V >, U extends Addable< U > >.restart(), solGatherers, timedOut, and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| int | nbrElectionRounds ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
References problem, and solve().

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
References problem, and solve().

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs, | ||
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| int | nbrElectionRounds, | ||
| boolean | measureMsgs, | ||
| Long | timeout, | ||
| boolean | cleanAfterwards ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| measureMsgs | whether message sizes should be measured |
| timeout | timeout in ms, if null, no timeout is used |
| cleanAfterwards | if true, cleans all the agents and the queue when they're done |
References agentDesc, problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| int | nbrElectionRounds, | ||
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| nbrElectionRounds | the number of rounds of VariableElection (must be greater than the diameter of the constraint graph) |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| S frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.solve | ( | P | problem, |
| Long | timeout ) |
Solves the input problem.
| problem | the problem |
| timeout | timeout in ms, if null, no timeout is used |
References problem, solve(), and frodo2.timeout.

| boolean frodo2.algorithms.AbstractSolver< P extends ProblemInterface< V, U, V extends Addable< V >, U extends Addable< U >, S extends Solution< V, U >.timedOut | ( | ) |
true when the solver timed out, false otherwise
|
protected |
Description of the agent to be used.
Referenced by AbstractSolver(), AbstractSolver(), AbstractSolver(), AbstractSolver(), AbstractSolver(), setParserClass(), solve(), solve(), and solve().
|
protected |
The agent factory.
Referenced by clear(), setFactory(), and solve().
|
private |
true when the solver ran out of memory, false otherwise
Referenced by solve().
|
protected |
The class of the parser to be used.
Referenced by AbstractSolver(), AbstractSolver(), and AbstractSolver().
|
protected |
|
protected |
The list of modules that record statistics about problem solving.
Referenced by solve().
|
private |
true when the solver timed out, false otherwise
Referenced by solve().
|
protected |
Whether to use TCP pipes or shared memory pipes.
Referenced by AbstractSolver(), AbstractSolver(), AbstractSolver(), and AbstractSolver().