I have an MILP program written in Pyomo and I am using CBC as a solver. Below is a description of my problem:

  1. The model works fine when it is run on my local computer
  2. The output is the following in local machine: Number of objectives: 1, Number of constraints: 5184, Number of variables: 3507. Status: ok, Message: CBC 2.10.3 optimal, objective 1538.88: 28 nodes, 4878 iterations, 4.5 seconds...etc
  3. When I move it over to a new server accessed by remote desktop the program fails
  4. The output is the following on RDP: Number of objectives: 1, Number of constraints: 0, Number of variables: 0, Status: ok, Message: CBC 2.10.3.

It seems that the model is not being properly accessed by the solver when I run it on remote desktop, but I don't know how to fix it. If I remove the solver and just run it to see what happens, the problem is 'Infeasible' but I get the correct number of constraints and variables. Help would be appreciated!

This is what the first few lines of the .sol file looks like if the program was successful: enter image description here

And this is what it looks like if it fails:

enter image description here

I figured out that the issue for the hours the program fails is that the problem is infeasible. So now my question is, why am I not getting an 'infeasible' status output from the solver?

  • 2
    $\begingroup$ Is there a different solver you can try on the server to see if you get the same behavior? Alternatively, maybe start with a small toy model and looking at the lp file generated by Pyomo to figure out if the issue is arising in Pyomo's write of the model or CBC's reading of the model. Are you creating an AbstractModel and missing a dat file on the server? $\endgroup$ May 13, 2021 at 23:40
  • $\begingroup$ I am creating a ConcreteModel. I was working to install a new solver like you suggested when the CBC version just starting working again. There is more to this story, that is to me very perplexing. This program is scheduled to run every hour pulling updating data $\endgroup$ May 14, 2021 at 0:58
  • $\begingroup$ and using that in its next iteration. I set up the program yesterday and the program worked, providing results for 15 hours. Then this morning the issue I describe above started. My first guess was that the issue lies in the data being pulled, but I thoroughly inspected it and could not find an issue there, and then not getting an error from pyomo but getting no results made me suspicious of the solver. This is all very concerning now that it is working but I have no idea what caused the issue and now not a clear path to troubleshooting. $\endgroup$ May 14, 2021 at 0:58
  • 2
    $\begingroup$ Try adding the keepfiles=True option to your call to the solver (i.e. solver.solve(model, keepfiles=True). This will cause the intermediate files that Pyomo uses to communicate with the solver to not be deleted. If you start seeing this issue again take a look at the LP file written out by Pyomo and verify that the model is what you expect. Sounds like there might be an intermittent problem in how you are reading in the data and populating the model. $\endgroup$ May 14, 2021 at 6:48


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.