Introduction

This page describes
uicg,
a random generator of “realistic” instances of the
hydro-thermal Unit Commitment problem in electric power generation.
The generator has been used for the experimental result presented in
the papers:

These papers describe also the model
of unit commitment which the instance generator refers to.

A special thanks to Fabrizio
Lacalandra, that give to me the original AMPL code, and Antonio
Frangioni, that has revised the code and the documentation.

Compiling

The unit commitment instance
generator ucig is a simple c++ program composed by a unique
source file ucig.cpp.

For this
reason the compilation is very easy and don't need particular
attention. For example, under linux it's sufficient the following
command:

gcc ucig.cpp -o ucig

Under windows the compilation depends by the development tools. With
the Visual C++ 6.0 it's enough to create a new empty project of kind
“win 32 console application”, add ucig.cpp in the
project and to compile.

The only possibly tricky part is about the ability of the generator
to output the instances in XML format (see the --
Xml option below); this requires the xerces
open-source XML library, that need to be present in the system and
properly linked to the executable. Since a plain text output option
is also available which does not require xerces
at all, the C macro HAVE_XML_OUTPUTis defined at the beginning of
the file; leaving it to the default value 0 disables XML output and
does not require linking with the XML library, setting it to a
nonzero value enables XML output and requires the XML library.

In the
following, the compiled program will be called ucig.

Using ucig

Ucig
is a simple program callable by command line with the following
syntax:

Ic is the number of instance to be generate, 0
for MAXINT. [1]
Gg is the number of days of horizon. [1]
Breaks is the number of subdivisions for each
day. [24]
Gmax is the number of thermals units. [10]
Imax is the number of hydro units. [10]
Cmax is the number of hydro cascade units. [0]
Seed is the seed for the random generator
number. [0]
CSC 1 for constant start up cost, 0 otherwise.
[0]
Xml 1 the produced result is in xml format, 0 in
textual format. [0]
Amin is the minimum value of the quadratic
coefficient for thermal units: typical range [0.0001,0.0005].
[1e-005]
Amax is the maximum value of the quadratic
coefficient for thermal units: typical range [0.001,0.05]. [0.1]
Difficulty is the Difficulty-Level
(1 or 2 or 3) of the output data file. [1]

Note that at the end of each lines the default parameters is shown
enclosed in squared bracket.