Domanda

Sto usando clex in CPP. Dopo aver bisogno di Google, ho scoperto quali parametri devono essere impostati per evitare Clex dalla stampa al terminale e li uso come questo:

IloCplex cplex(model);
std::ofstream logfile("cplex.log");
cplex.setOut(logfile);
cplex.setWarning(logfile);
cplex.setError(logfile);

cplex.setParam(IloCplex::MIPInterval, 1000);//Controls the frequency of node logging when MIPDISPLAY is set higher than 1.
cplex.setParam(IloCplex::MIPDisplay, 0);//MIP node log display information-No display until optimal solution has been found
cplex.setParam(IloCplex::SimDisplay, 0);//No iteration messages until solution
cplex.setParam(IloCplex::BarDisplay, 0);//No progress information
cplex.setParam(IloCplex::NetDisplay, 0);//Network logging display indicator

if ( !cplex.solve() ) {
....
}
.

Ma tuttavia clesso stampa cose del genere:

Warning:  Bound infeasibility column 'x11'.
Presolve time = 0.00 sec. (0.00 ticks)

Root node processing (before b&c):
  Real time             =    0.00 sec. (0.01 ticks)
Parallel b&c, 4 threads:
  Real time             =    0.00 sec. (0.00 ticks)
  Sync time (average)   =    0.00 sec.
  Wait time (average)   =    0.00 sec.
                          ------------
Total (root+branch&cut) =    0.00 sec. (0.01 ticks)
.

C'è un modo per evitare di stamparli?

È stato utile?

Soluzione 2

Questo è ciò che funziona in C ++ in base a CPLEXparametridoc:

.
cplex.setOut(env.getNullStream());
cplex.setWarning(env.getNullStream());
cplex.setError(env.getNullStream());
.

Altri suggerimenti

Utilizzare il metodo setOut da Classe IloAlgorithm (IloCplex Eredita da IloAlgorithm).È possibile impostare un flusso di uscita null come parametro e impedire la registrazione del messaggio sullo schermo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top