@@ -134,6 +134,9 @@ void HighsMipSolver::run() {
134134 mipdata_->transformNewIntegerFeasibleSolution (std::vector<double >());
135135 mipdata_->saveReportMipSolution ();
136136 }
137+ if (!mipdata_->mipIsKnapsack ()) {
138+ if (!mipdata_->mipIsInes ()) mipdata_->mipIsOther ();
139+ }
137140 cleanupSolve ();
138141 return ;
139142 }
@@ -899,7 +902,7 @@ void HighsMipSolver::cleanupSolve(const bool mip_logging) {
899902 HighsInt num_ines_mip = 0 ;
900903 size_t sum_ines_num_col = 0 ;
901904 size_t sum_ines_num_row = 0 ;
902- HighsInt lc_max_submip_level = -1 ;
905+ HighsInt max_global_submip_level = -1 ;
903906 HighsInt min_submip_sum_dim = kHighsIInf ;
904907 HighsInt min_submip_num_col = kHighsIInf ;
905908 HighsInt min_submip_num_row = kHighsIInf ;
@@ -919,9 +922,8 @@ void HighsMipSolver::cleanupSolve(const bool mip_logging) {
919922 default :
920923 break ;
921924 }
922- HighsInt lc_submip_level = mip_problem_data[iMip].submip_level ;
923-
924- lc_max_submip_level = std::max (lc_submip_level, lc_max_submip_level);
925+ HighsInt global_submip_level = mip_problem_data[iMip].submip_level ;
926+ max_global_submip_level = std::max (global_submip_level, max_global_submip_level);
925927 HighsInt submip_num_col = mip_problem_data[iMip].num_continuous +
926928 mip_problem_data[iMip].num_binary +
927929 mip_problem_data[iMip].num_general_integer +
@@ -935,9 +937,9 @@ void HighsMipSolver::cleanupSolve(const bool mip_logging) {
935937 }
936938 if (full_submip_logging)
937939 highsLogUser (options_mip_->log_options , HighsLogType::kInfo ,
938- " MIP %3d (level = %2d; %3d conts; %3d bin; "
939- " %3d gen; %3d impl; cols / rows: %3d / %3d ; type %s)\n " ,
940- int (iMip), int (lc_submip_level ),
940+ " MIP %3d (level = %2d; %6d conts; %6d bin; "
941+ " %6d gen; %6d impl; cols / rows: %6d / %6d ; type %s)\n " ,
942+ int (iMip), int (global_submip_level ),
941943 int (mip_problem_data[iMip].num_continuous ),
942944 int (mip_problem_data[iMip].num_binary ),
943945 int (mip_problem_data[iMip].num_general_integer ),
@@ -955,7 +957,8 @@ void HighsMipSolver::cleanupSolve(const bool mip_logging) {
955957
956958 std::stringstream ss;
957959 ss.str (std::string ());
958- ss << highsFormatToString (" Max sub-MIP depth %d" , int (max_submip_level));
960+ assert (submip_level + max_submip_level == max_global_submip_level);
961+ ss << highsFormatToString (" Max sub-MIP level %d" , int (submip_level + max_submip_level));
959962 if (max_submip_level > 0 )
960963 ss << highsFormatToString (" (min cols/rows: %d/%d)\n " ,
961964 int (min_submip_num_col), int (min_submip_num_row));
0 commit comments