# 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. | |

## 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. | |

## 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. | |

## 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 |

## Constructor & Destructor Documentation

BACP::BACP | ( | const SizeOptions & | opt |
) | ` [inline]` |

BACP::BACP | ( | BACP & | bacp |
) | ` [inline]` |

## Member Function Documentation

virtual Space* BACP::copy | ( | void | ) | ` [inline, virtual]` |

virtual IntVar BACP::cost | ( | void | ) | const` [inline, virtual]` |

virtual void BACP::print | ( | std::ostream & | os |
) | const` [inline, virtual]` |

Print solution.

Reimplemented from Gecode::Driver::ScriptBase< BaseSpace >.

## Friends And Related Function Documentation

**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.

const char* prereqs8[]` [related]` |

const char* prereqs10[]` [related]` |

const char* prereqs12[]` [related]` |

const Curriculum curriculum[]` [related]` |

const unsigned int n_examples = sizeof(curriculum) / sizeof(Curriculum)` [related]` |

## Member Data Documentation

const Curriculum BACP::curr` [protected]` |

IntVarArray BACP::l` [protected]` |

IntVarArray BACP::q` [protected]` |

IntVarArray BACP::x` [protected]` |

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

- examples/bacp.cpp