Man Linux: Main Page and Category List

NAME

       tablix2 - general timetable solver

SYNOPSIS

       tablix2 [ options ] file

DESCRIPTION

       Tablix   is  a  powerful  free  software  kernel  for  solving  general
       timetabling  problems.  It  uses  a  coarse-grained  parallel   genetic
       algorithm  in  combination  with other techniques to construct sensible
       timetables from XML formatted problem descriptions. Tablix can run on a
       single  host  as  well  as  on a heterogeneous parallel virtual machine
       using PVM3.

       It operates by trying to assign  variable  resources  to  a  number  of
       events  (sometimes  called  tuples)  in  a  most efficient way. Various
       fitness modules can be specified in the  problem  description  file  to
       control the behaviour of the genetic algorithm.

       Output  is  given  in  the form of a XML file. This file can be further
       processed by tablix2_output utility  to  export  timetable  data  to  a
       number  of  human or machine readable formats. Output XML file can also
       be used again as a problem description (input) file. In that  case  the
       previous  solution will be used as a hint for Tablix when searching for
       a new solution.

OPTIONS

       -n N   Start N slave processes (kernels). This is the number of spawned
              PVM3  tasks on the virtual machine. A larger number means larger
              total population, steeper  convergence  graph,  more  exhaustive
              search   for   solutions  and  a  smaller  chance  of  premature
              convergence. However, optimal number depends on the  number  and
              speed  of  computing  nodes.  For  a virtual machine composed of
              reasonably fast machines start with N = 4 * i  where  i  is  the
              number  of  computing nodes. Tablix will try to arrange tasks so
              that all computing nodes will have equal load. (Be sure  to  set
              speed field correctly in your PVM3 hostfile). Default is 4.

       -l N   When  a population in a slave process (computing node) reaches a
              local minimum that process will  try  to  execute  an  algorithm
              called  local  search.  This  is a way to nudge the main genetic
              algorithm out of a local minimum trap if it gets caught  in  it.
              However  it  is  usually not efficient for this algorithm to run
              simultaneously on many nodes. This option  sets  the  number  of
              computing nodes that are allowed to simultaneously perform local
              search.  Setting N to 0 disables local search and  -1  means  no
              limit. Default is 1.

       -r     Restore  saved populations instead of starting with random ones.
              Populations are loaded from a number of  PREFIXsave?.txt  files,
              where  PREFIX  is  the prefix, specified with the -o option. See
              below.

       -o PREFIX
              Specify a prefix for output files.  All  output  files  (result,
              saved  populations  and convergence graph info) will have PREFIX
              prepended.

       -d LEVEL
              Set the verbosity level, where LEVEL is one of the following:

                 0    (only fatal error messages are shown),

                 1    (fatal and non-fatal errors),

                 2    (errors and a progress indicator),

                 3    (all of the above plus some informational messages) or

                 4    (all of the above plus debug messages).

       -h     Shows a brief help message.

       -v     Shows compile  time  options,  path  to  modules  and  copyright
              information.

       -t MINUTES
              Sets a time limit for the genetic algorithm. Tablix will stop if
              no solution is found after set number of minutes. The effect  is
              same  as  when  Ctrl-C is pressed. Setting MINUTES to 0 disables
              this feature. Default is disabled. Use this  option  to  prevent
              Tablix to run indefinitely if there is no possible solution.

       -p PARAMETERS
              Set  algorithm  parameters.  This  is  rarely used. The defaults
              should work fine in most cases. PARAMETERS is a comma  separated
              string   of  parameter=value  pairs.  Following  parameters  are
              available:

                 popsize
                      Population  size  of  one  node   in   cluster.   Bigger
                      populations mean less generations per minute but also in
                      some cases more optimized results. Default 500.

                 toursize
                      Tournament  size.  Bigger  tournament  sizes  result  in
                      faster  convergence, which can result in finding a local
                      instead of a global minimum. Default 3.

                 mutatepart
                      What part of the population will mutate each generation.
                      2 means one half, 3 means one third, etc. More mutations
                      usually result in slower convergence  but  can  help  to
                      avoid local minimums. Default 4.

                 randpart
                      What  part  of  the  population  will be randomized each
                      generation.  Randomizations  have  the  same  effect  as
                      mutations. Default 6.

                 maxequal
                      How many equally graded timetables can exist at the same
                      time in a population. Smaller values  result  in  slower
                      convergence  but  can  help  to  avoid  local  minimums.
                      Default 20.

                 finish
                      Tablix will finish when  the  number  of  all  mandatory
                      errors  in  the best solution reaches zero and this best
                      solution had the same fitness  value  for  N  sequential
                      populations. This option enables you to set the value of
                      N. It has no effect if there are no non-mandatory errors
                      defined  (in  that  case  Tablix finishes as soon as the
                      number of all mandatory errors  reaches  zero).  Default
                      300.

                 migrtime
                      How often do parts of populations migrate between nodes.
                      Smaller value means more migrations,  which  results  in
                      faster convergence. Default 40.

                 migrpart
                      What  part  of  population  will  migrate between nodes.
                      Default 10.

                 localtresh
                      How many  equally  graded  populations  to  wait  before
                      starting local search (if enabled). Default 100.

                 localstep
                      Initial  step  for  the  local  search algorithm. Larger
                      values mean more exhaustive and slower  search.  Default
                      4.

                 pophint
                      If the user has loaded an XML file that already contains
                      a partial or  a  full  solution,  then  a  part  of  the
                      population  can be initialized with this solution.  This
                      parameter defines the percentage of  the  timetables  in
                      the   population   that   will   be  initialized  (other
                      timetables will  be  initialized  with  random  values).
                      Values  must  be  between  0 and 100. Larger values mean
                      that the solution given in the  XML  file  will  have  a
                      greater  possibility  of  being  included  in  the final
                      solution. If there is no solution in the XML  file  then
                      this parameter has no effect. Default 25.

                 cachesize
                      This  is  the maximum number of timetable fitness values
                      that will be held in the fitness  cache.  Larger  values
                      mean  more  cache  search overhead but may improve cache
                      hit/miss ratio. It is  probably  unwise  to  use  caches
                      larger  than 32.  In general fitness caching will reduce
                      performance at the start of the  genetic  algorithm  and
                      improve  it  at  the  end. Set to 0 to turn off caching.
                      Default 16.

       -i PATH
              Sets the path to fitness modules. By default the module path  is
              set to the location where fitness modules were installed by make
              install command.

USAGE

       When you run tablix2 , you actually start the   master   process   that
       will  spawn  the  requested number of slave processes (kernels) on  the
       virtual machine. It will then multicast the configuration file  to  all
       the  nodes  and start listening for their reports.

       You  can press Ctrl-C (or send  SIGINT)  to  stop  the  process. Tablix
       will save its state in a number of files  called  save?.txt  (it   will
       prepend  your  prefix,  if given). You can later resume the process  by
       running Tablix with the -r parameter.

       This feature will only  work if  you don’t change the  input  XML  file
       between  saving  and  restoring  the  process. Changes to the number of
       computing nodes (-n parameter) or to the physical configuration of  the
       cluster are allowed however.

       Tablix  will  save  population  convergence  information  for each node
       during the computation into files with  names  conv?.txt.  These  files
       allow the user to track the progress and sometimes predict the required
       time to find the solution to the given problem. Data in these files can
       be graphically represented with the tablix2_plot utility.

       When  all  the  criteria  defined by the fitness modules are satisfied,
       Tablix will output one XML  file  for each node  (file  names  will  be
       result?.xml, prefix will be prepended if given).

NOTES

       tablix2_kernel  is  executable  for the slave process. It should not be
       started by hand, unless you know  what  your  are  doing  (e.g.  during
       debugging)

DIAGNOSTICS

       Exit  status  is 0 if solutions were found, and 1 if the time limit was
       reached or the user has pressed Ctrl-C. Exit status  is  more  or  less
       undefined  in case of errors during the execution (ideally it should be
       2 in this case).

BUGS

       Tablix will not notify the user if he or she is  trying  to  create  an
       impossible time table.

AUTHOR

       Tomaz Solc (tomaz.solc@tablix.org)

SEE ALSO

       pvm(1PVM),      pvmd(1PVM),     tablix2_output(1),     tablix2_plot(1),
       tablix2_benchmark(1), tablix2_test(1),  Tablix  User’s  Manual,  Tablix
       modules HOWTO