BACP Class Reference
Example scripts (models)

Example: The balanced academic curriculum problem More...

## Public Types

enum | { BRANCHING_NAIVE , BRANCHING_LOAD , BRANCHING_LOAD_REV }
| Branching variants. More...

## Public Member Functions

| BACP (const SizeOptions &opt)
| Actual model.
| BACP (BACP &bacp)
| Constructor for copying bacp.
virtual Space * | copy (void)
| Copy during cloning.
virtual IntVar | cost (void) const
| Return solution cost.
virtual void | print (std::ostream &os) const
| Print solution.
Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::IgnoreStepOption< IntMinimizeSpace > >
| ScriptBase (const Options &opt)
| Constructor.
| ScriptBase (ScriptBase &e)
| Constructor used for cloning.
virtual void | compare (const Space &home, std::ostream &os) const
| Compare with s.
Public Member Functions inherited from Gecode::Driver::IgnoreStepOption< BaseSpace >
| IgnoreStepOption (const Options &)
| Constructor.
| IgnoreStepOption (BaseSpace &e)
| Constructor used for cloning.

## Static Public Member Functions

static int | load (const Space &home, IntVar x, int)
| Value selection function for load branching.
static int | load_rev (const Space &home, IntVar x, int)
| Value selection function for reverse load branching.
Static Public Member Functions inherited from Gecode::Driver::ScriptBase< Driver::IgnoreStepOption< IntMinimizeSpace > >
static std::ostream & | select_ostream (const char *sn, std::ofstream &ofs)
| Choose output stream according to sn.
static void | run (const Options &opt, Script *s=NULL)

## Protected Attributes

const Curriculum | curr
| The curriculum to be scheduled.
IntVarArray | l
| Academic load for each period.
IntVar | u
| Maximum academic load.
IntVarArray | q
| Number of courses assigned to a period.
IntVarArray | x
| Period to which a course is assigned.

## Related Symbols

(Note that these are not member symbols.)
int | main (int argc, char *argv[])
| Main-function.

## Parameters for balanced academic curriculum

const Course | courses8 []
| Courses for first example.
const char * | prereqs8 []
| Prerequisites for first example.
const Course | courses10 []
| Courses for second example.
const char * | prereqs10 []
| Prerequisites for second example.
const Course | courses12 []
| Courses for third example.
const char * | prereqs12 []
| Prerequisites for third example.
const Curriculum | curriculum []
| The example specifications.
const unsigned int | n_examples = sizeof(curriculum) / sizeof(Curriculum)
| The number of examples.

## Detailed Description

Example: The balanced academic curriculum problem

This is problem 030 from http://www.csplib.org/.

A custom value selection from "A CP Approach to the Balanced Academic Curriculum Problem", J.N. Monette, P. Schaus, S. Zampelli, Y. Deville, and P. Dupont is available.

Definition at line 96 of file bacp.cpp.

## Member Enumeration Documentation

## anonymous enum

anonymous enum

Branching variants.

Enumerator
BRANCHING_NAIVE | Simple fail-first branching.
BRANCHING_LOAD | Place based on minimum-load.
BRANCHING_LOAD_REV | Place based on maximum-load.

Definition at line 112 of file bacp.cpp.

## Constructor & Destructor Documentation

## BACP() [1/2]

BACP::BACP | ( | const SizeOptions & | opt | ) |

inline

Actual model.

Definition at line 119 of file bacp.cpp.

## BACP() [2/2]

BACP::BACP | ( | BACP & | bacp | ) |

inline

Constructor for copying bacp.

Definition at line 209 of file bacp.cpp.

## Member Function Documentation

## load()

int BACP::load | ( | const Space & | home,
|  | IntVar | x,
|  | int | )

inline static

Value selection function for load branching.

Definition at line 177 of file bacp.cpp.

## load_rev()

int BACP::load_rev | ( | const Space & | home,
|  | IntVar | x,
|  | int | )

inline static

Value selection function for reverse load branching.

Definition at line 193 of file bacp.cpp.

## copy()

virtual Space * BACP::copy | ( | void |  | ) |

inline virtual

Copy during cloning.

Definition at line 217 of file bacp.cpp.

## cost()

virtual IntVar BACP::cost | ( | void |  | ) | const

inline virtual

Return solution cost.

Definition at line 221 of file bacp.cpp.

## print()

virtual void BACP::print | ( | std::ostream & | os | ) | const

inline virtual

Print solution.

Reimplemented from Gecode::Driver::ScriptBase< Driver::IgnoreStepOption< IntMinimizeSpace > >.

Definition at line 226 of file bacp.cpp.

## Friends And Related Symbol Documentation

## courses8

const Course courses8[]

related

Initial value:
=
{
{"dew100", 1},
{"fis100", 3},
{"hcw310", 1},{"iwg101", 2},{"mat190", 4},{"mat192", 4},{"dew101", 1},
{"fis101", 5},{"iwi131", 3},{"mat191", 4},{"mat193", 4},{"fis102", 5},{"hxwxx1", 1},
{"iei134", 3},{"iei141", 3},{"mat194", 4},
{"dewxx0", 1},{"hcw311", 1},{"iei132", 3},{"iei133", 3},{"iei142", 3},{"iei162", 3},
{"iwn170", 3},{"mat195", 3},{"hxwxx2", 1},{"iei231", 4},{"iei241", 4},{"iei271", 3},{"iei281", 3},{"iwn261", 3},
{"hfw120", 2},{"iei233", 4},{"iei238", 3},{"iei261", 3},{"iei272", 3},{"iei273", 3},{"iei161", 3},{"iei232", 3},
{"iei262", 3},{"iei274", 3},{"iwi365", 3},{"iwn270", 3},{"hrw130", 2},{"iei218", 3},{"iei219", 3},{"iei248", 3},
{0,0}
}

Courses for first example.

Definition at line 275 of file bacp.cpp.

## prereqs8

const char* prereqs8[]

related

Prerequisites for first example.

Definition at line 290 of file bacp.cpp.

## courses10

const Course courses10[]

related

Courses for second example.

Definition at line 334 of file bacp.cpp.

## prereqs10

const char* prereqs10[]

related

Prerequisites for second example.

Definition at line 381 of file bacp.cpp.

## courses12

const Course courses12[]

related

Courses for third example.

Definition at line 420 of file bacp.cpp.

## prereqs12

const char* prereqs12[]

related

Prerequisites for third example.

Definition at line 491 of file bacp.cpp.

## curriculum

const Curriculum curriculum[]

related

Initial value:
=
{ { 8, 10, 24, 2, 10,
courses8, prereqs8
},
{ 10, 10, 24, 2, 10,
courses10, prereqs10
},
{ 12, 10, 24, 2, 10,
courses12, prereqs12
}
}
BACP::prereqs10
const char * prereqs10[]
Prerequisites for second example.
Definition bacp.cpp:381
BACP::courses10
const Course courses10[]
Courses for second example.
Definition bacp.cpp:334
BACP::courses8
const Course courses8[]
Courses for first example.
Definition bacp.cpp:275
BACP::prereqs12
const char * prereqs12[]
Prerequisites for third example.
Definition bacp.cpp:491
BACP::courses12
const Course courses12[]
Courses for third example.
Definition bacp.cpp:420
BACP::prereqs8
const char * prereqs8[]
Prerequisites for first example.
Definition bacp.cpp:290

The example specifications.

Definition at line 561 of file bacp.cpp.

## n_examples

const unsigned int n_examples = sizeof(curriculum) / sizeof(Curriculum)

related

The number of examples.

Definition at line 574 of file bacp.cpp.

## main()

int main | ( | int | argc,
|  | char * | argv[] )

related

Main-function.

Definition at line 249 of file bacp.cpp.

## Member Data Documentation

## curr

const Curriculum BACP::curr

protected

The curriculum to be scheduled.

Definition at line 99 of file bacp.cpp.

## l

IntVarArray BACP::l

protected

Academic load for each period.

Definition at line 102 of file bacp.cpp.

## u

IntVar BACP::u

protected

Maximum academic load.

Definition at line 104 of file bacp.cpp.

## q

IntVarArray BACP::q

protected

Number of courses assigned to a period.

Definition at line 106 of file bacp.cpp.

## x

IntVarArray BACP::x

protected

Period to which a course is assigned.

Definition at line 109 of file bacp.cpp.

The documentation for this class was generated from the following file:

- examples/bacp.cpp