Gecode Options#

ampl: option solver gecode; # change the solver
ampl: option gecode_options 'option1=value1 option2=value2'; # specify options
ampl: solve; # solve the problem

Solver options obtained with $ gecode -=.

Gecode Options for AMPL
-----------------------

To set these options, assign a string specifying their values to the AMPL
option "gecode_options". For example:

   ampl: option gecode_options 'version nodelimit=30000 val_branching=min';

'' Options:

cp:a_d (a_d)
      Adaptive recomputation distance.

cp:c_d (c_d)
      Commit recomputation distance.

cp:decay (decay)
      Decay factor for AFC and activity branchings. Default = 1.

cp:ipl (ipl)
      Propagation level for integer propagators. Possible values:

      val - value propagation or consistency (naive)
      bnd - bounds propagation or consistency
      dom - domain propagation or consistency
      def - the default propagation for a constraint

cp:restart (restart)
      Restart sequence type. Possible values:

      none      - no restarts
      constant  - restart with constant sequence
      linear    - restart with linear sequence
      luby      - restart with Luby sequence
      geometric - restart with geometric sequence

cp:restart_base (restart_base)
      Base for geometric restart sequence. Default = 1.5.

cp:restart_scale (restart_scale)
      Scale factor for restart sequence. Default = 250.

cp:val_branching (val_branching)
      Value branching. Possible values:

      min        - smallest value (default)
      med        - greatest value not greater than the median
      max        - largest value
      rnd        - random value
      split_min  - values not greater than mean of smallest and largest value
      split_max  - values greater than mean of smallest and largest value
      range_min  - values from smallest range, if domain has several ranges;
                   otherwise, values not greater than mean of smallest and
                   largest value
      range_max  - values from largest range, if domain has several ranges;
                   otherwise, values greater than mean of smallest and largest
                   value
      values_min - all values starting from smallest
      values_max - all values starting from largest

cp:var_branching (var_branching)
      Variable branching. Possible values:

      none            - first unassigned
      rnd             - random
      degree_min      - smallest degree
      degree_max      - largest degree
      afc_min         - smallest accumulated failure count (AFC)
      afc_max         - largest accumulated failure count (AFC)
      action_min      - lowest action
      action_max      - highest action
      min_min         - smallest minimum value
      min_max         - largest minimum value
      max_min         - smallest maximum value
      max_max         - largest maximum value
      size_min        - smallest domain size (default)
      size_max        - largest domain size
      degree_size_min - smallest domain size divided by degree
      degree_size_max - largest domain size divided by degree
      afc_size_min    - smallest domain size divided by AFC
      afc_size_max    - largest domain size divided by AFC
      action_size_min - smallest action divided by domain size
      action_size_max - largest action divided by domain size
      regret_min_min  - smallest minimum-regret
      regret_min_max  - largest minimum-regret
      regret_max_min  - smallest maximum-regret
      regret_max_max  - largest maximum-regret

lim:fail (faillim, faillimit)
      Fail limit.

lim:nodes (nodelim, nodelimit)
      Node limit.

lim:sol (solutionlimit)
      Limit on the number of feasible solutions found before terminating a
      search. Leaving the solution limit unspecified will make the optimizer
      search for an optimal solution if there is an objective function or for
      a feasible solution otherwise.

lim:time (timelim, timelimit)
      Time limit in seconds.

log:freq (logfreq, outfreq)
      Output frequency in seconds. The value should be a positive number.

log:lev (outlev)
      0 or 1 (default 0): Whether to print solution log.

obj:no (objno)
      Objective to optimize:

      0 - None
      1 - First (default, if available)
      2 - Second (if available), etc.

sol:count (countsolutions)
      0*/1: Whether to count the number of solutions and return it in the
      ".nsol" problem suffix.

sol:report_uncertain (report_uncertain_sol)
      0/1*: whether to report objective value(s) in solve_message when
      solve_result is '?' (unknown).

sol:stub (solstub, solutionstub)
      Stub for solution files. If "solutionstub" is specified, found solutions
      are written to files ("solutionstub & '1' & '.sol'") ... ("solutionstub
      & Current.nsol & '.sol'"), where "Current.nsol" holds the number of
      returned solutions. That is, file names are obtained by appending 1, 2,
      ... "Current.nsol" to "solutionstub".

tech:debug (debug)
      0*/1: whether to assist testing & debugging, e.g., by outputting
      auxiliary information (mostly via suffixes).

tech:optionfile (optionfile, option:file)
      Name of an AMPL solver option file to read (surrounded by 'single' or
      "double" quotes if the name contains blanks). Lines that start with #
      are ignored. Otherwise, each nonempty line should contain "name=value",
      e.g., "lim:iter=500".

tech:outlev_mp (outlev_mp)
      0*/1: whether to print MP model information.

tech:stats (stats, tech:report_stats, solve_stats)
      Whether to return solve statistics and timings; the information will be
      stored in the problem suffixes: 'simplex_iterations',
      'barrier_iterations', 'nodes' and possibly other solver-dependent
      suffixes. A JSON representation of the information above is returned in
      the problem suffix `stats`.
      Note that timing information will also be included in the JSON
      representation if tech:timing>0. Values:

      0 - Do not report statistics (default)
      1 - Report statistics in JSON format in the problem suffix 'stats'
      2 - Report statistics in suffixes
      3 - Report statistics both in suffixes and the suffix 'stats'.

      See also obj:multi:stats.

tech:threads (threads)
      The number of parallel threads to use. Assume that your computer has m
      processing units and that the value for threads is n.

      * If n = 0, then m threads are used (as many as available processing
        units).

      * If n >= 1, then n threads are used (absolute number of threads to be
        used).

      * If n <= -1, then m + n threads are used (absolute number of processing
        units not to be used). For example, when n = -6 and m = 8, then 2
        threads are used.

      * If 0 < n < 1, then n * m threads are used (relative number of
        processing units to be used). For example, when n = 0.5 and m = 8,
        then 4 threads are used.

      * If -1 < n < 0, then (1 + n) * m threads are used (relative number of
        processing units not to be used). For example, when n = -0.25 and m =
        8, then 6 threads are used.

      All values are rounded and at least one thread is used.

tech:timing (timing, tech:report_times, report_times)
      0*/1/2: Whether to print and return timings for the run, all times are
      wall times. If set to 1, return the solution times in the problem
      suffixes 'time_solver', 'time_setup' and 'time', 'time'=
      time_solver+time_setup+time_output is a measure of the total time spent
      in the solver driver. If set to 2, return more granular times, including
      'time_read', 'time_conversion' and 'time_output'.

tech:version (version)
      Single-word phrase: report version details before solving the problem.

tech:wantsol (wantsol)
      In a stand-alone invocation (no "-AMPL" on the command line), what
      solution information to write. Sum of

      1 - Write ".sol" file
      2 - Primal variables to stdout
      4 - Dual variables to stdout
      8 - Suppress solution message.