Hi Bob,
Thanks for your reply. Yes, I am solving a master problem and a set of sub problems. I followed your instruction. In the run file, after the declaration of each problem, I have something like the following:
problem Master: variable and constraint......; #master problem
option solver cplex, cplex_options 'bestbound timelimit=600';
problem Sub{(k,t) in event_nodes:t>1}: variable and constraint......; #subproblem
option solver cplex;
Note that, I have include the bestbound in the cplex_options just after the "problem Master". I think that means I have set the cplex_options when the Master problem is current. Please correct me if I am wrong.
However, when I solve the problem in an iterative process, I didn't see "suffix bestbound OUT" from the screen output. Should I type it in somewhere in my code?
My purpose is actually to assign the "Master_cost.bestbound" (Master_cost is the objective name) to a parameter such as "previous_bound". I tried two ways. The first one cannot be processed, and the second one is OK. Could you help me to identify my problems? Thanks.
Case 1:
In my run file, if I try to make the assignment in my code as follows:
solve Master;
#let previous_bound := Master_cost.bestbound;
The problem cannot be solved with error output as follows:
nested.run, line 68 (offset 2839):
Bad suffix .bestbound for Master_cost
context: let previous_bound := >>> Master_cost.bestbound; <<<
Possible suffix values for Master_cost.suffix:
astatus exitcode message no
relax result sense sno
sstatus stage val
Case 2:
If I delete the line "let previous_bound := Master_cost.bestbound" from the code and try to break the process after solve the master problem, there is no error message and the screen output has similar results (I copied your results from your previous email) as follows:
CPLEX
12.6.0.0: bestbound
CPLEX
12.6.0.0: optimal integer solution; objective 235625
109 MIP simplex iterations
0 branch-and-bound nodes
Then, if I try to assign the value by hand in the command line as follows:
ampl: let previous_bound := Master_cost.bestbound;
The command is correctly processed.
My concern is how to make the command in my code without having errors. I am not sure if I express my problem clearly. Thanks for your time.
Best wishes,
Fei Xie