#ifndef __SRC_LIB_FEASIBILITYQUASS_HPP__ #define __SRC_LIB_FEASIBILITYQUASS_HPP__ #include "crashsolution.hpp" #include "basis.hpp" #include "runtime.hpp" void computestartingpoint_quass(Runtime& runtime, CrashSolution& result) { /* creates and solves the feasibility problem min gamma s.t. b - gamma <= Ax <= b + gamma l - gamma <= x <= u + gamma gamma >= 0 with initial values: compute x = l or b if possible, x = 0 for free variables compute Ax = ra compute initial gamma (large enough to make above system feasible) initialactive: constraint at which gamma attains maximum, all x for bounded x initialinactive: all x for free x FTRAN: B lambda = c (== 1, 00000) PRICE (find most negative/positive lambda not corresponding to gamma) RATIOTEST UPDATE (BTRAN) */ //Basis basis(); // // create artificial bounds for free variables // if (runtime.settings.phase1boundfreevars) { // for (HighsInt i=0; i::infinity()); // assert(runtime.instance.con_up[ia] == // std::numeric_limits::infinity()); // } else { // // printf("free col %d\n", (int)ia); // assert(runtime.instance.var_lo[ia - runtime.instance.num_con] == // -std::numeric_limits::infinity()); // assert(runtime.instance.var_up[ia - runtime.instance.num_con] == // std::numeric_limits::infinity()); // } // } // result.rowstatus = atlower; // result.active = initialactive; // result.inactive = initialinactive; // result.primal = x0; // result.rowact = ra; } #endif