Normally if CPLEX is sent a starting solution that is not feasible, it will display a message (when mipdisplay=2 is included in the cplex_options string) like
Retaining values of one MIP start for possible repair.
Can you post your CPLEX output starting from "CPLEX
12.6.3.0: ..." and continuing to the point where branching begins (as specified by a positive value in the Node column)? An example where the initial solution is used and one where it is not used would be helpful for comparison. Maybe that will suggest some further ideas.
Also if you have not done so already, it is a good idea, after assigning initial values for the variables, to check in AMPL with commands like
display {i in 1.._ncons: _con[i].slack < -1e-6} (_conname[i],_con[i].slack);
display {j in 1.._nvars: _var[j].slack < -1e-6} (_varname[j],_var[j].slack);
to confirm that there are no infeasibilities greater than the tolerance specified (1e-6 in this example).
Bob Fourer
am...@googlegroups.com
=======