Руководство для научно-исследовательской работы по библиотеке ILOG CPLEX 11.2
11 4. Задаем направление оптимизации (максимизация) и вызываем для задачи (1) функцию оптимизации CPXlpopt (см. таблицу 1.2). Эта функция возвращает ненулевое значение в случае возникновения ошибки. После завершения решателем процедуры оптимизации вызовом функции CPXgetstat извлекаем информацию о полученном решении (статус решения). В случае бесконечности или неограниченности решения обращаемся к функции CPXsolninfo для получения более подробной информации. CPXchgobjsen (env, lp, CPX_MAX); status = CPXlpopt (env, lp); if ( status ) { fprintf (stderr, "Failed to optimize LP.\n"); gotoTERMINATE; } solnstat = CPXgetstat (env, lp); if ( solnstat == CPX_STAT_UNBOUNDED ) { printf ("Model is unbounded\n"); goto TERMINATE; } elseif ( solnstat == CPX_STAT_INFEASIBLE ) { printf ("Model is infeasible\n"); goto TERMINATE; } elseif ( solnstat == CPX_STAT_INForUNBD ) { printf ("Model is infeasible or unbounded\n"); goto TERMINATE; } status = CPXsolninfo (env, lp, &solnmethod, &solntype, NULL, NULL); if ( status ) { fprintf (stderr, "Failed to obtain solution info.\n"); goto TERMINATE; } printf ("Solution status %d, solution method %d\n", solnstat, solnmethod); if ( solntype == CPX_NO_SOLN ) { fprintf (stderr, "Solution not available.\n"); gotoTERMINATE; }
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy