File format for pname.int: ========================= KEYWORD KEYWORD_BODY { KEYWORD KEYWORD_BODY } ... where KEYWORD = { priorities | PRIORITIES | special_ordered_set_1 | SPECIAL_ORDERED_SET_1 } ... and KEYWORD_BODY = { SOS_NAME SOS_PRIORITY N_VAR_IN_SOS } VAR_LIST END KEYWORD ... and VAR_LIST = VARNAME VALUE { VAR_LIST } Here VARNAME is the variable name (character) and VALUE is the priority value (integer) or the reference value of the SOS variable (real). SOS_NAME, SOS_PRIORITY and N_VAR_IN_SOS are only required for SOS definitions. This starts a new SOS set. SOS_NAM should ideally be related to the name of the constraint defining the SOS. It is assumed that a SOS constraint is contained in the AMPL/SIF file. SOS_PRIORITY gives the priority allocated to this SOS1 set. N_VAR_IN_SOS gives the number of variables contained in this SOS1 set. If reading priorities, each VARNAME-VALUE pair MUST be on a new line. Any entries following on the same line are ignored and can be used to provide comments. If reading SOS1 sets, each VARNAME-VALUE pair can just be separated by blank spaces. However, recommend new line for each pair. Note that ALL variables which contain VARNAME as leading character are assumed to have the same npriority. This enables arrays to be given identical priorities, e.g. y 100 z[1, 10 z[2, 1 would give y[1],...,y[10] say the priority 100, z[1,1],...,z[1,10] the priority 10 and z[2,1],...,z[2,10] the priority 1. In AMPL session say ... ampl: model synthes1.mod; -> problem description ampl: option solver MINLP_BB; -> solve with MINLP_BB ampl: option MINLP_BB_auxfiles rc; -> save variable/constraint names ampl: option mip_priorities synthes1; -> read info from synthes1.int ampl: solve; -> solve the problem A Fortran 77 subroutine which reads this information and creates suitable index arrays is available upon request from sleyffer@mcs.dundee.ac.uk.