may be these best that can be expected. The integer feasible point found by Knitro in this case may or may not be optimal.
You can use options such as "mip_terminate", "mip_maxnodes", "mip_maxtime_real", "mip_heuristic_terminate", and "mip_integral_gap_rel" to control when Knitro terminates. See the full list of MIP options here:
So yes you can, for instance, set "mip_maxnodes=1" to make it stop after running the heuristic at the root node to search for an integer feasible point. You can also use "mip_terminate=1" to force it to stop as soon as it finds an integer feasible solution.
Best,
-Richard
Richard WALTZ
Senior Scientist
Artelys USA