Come posso cambiare il tipo di variabile decisionale in Concert Technologies (con Java)

Aug 20 2020

Ho un modello MILP con variabili continue ($y_{ij}$) e binari ($x_{ij}$). Sto usando Java e cplex 12.8 per l'implementazione.

C'è un modo in cui, utilizzando l'API Java-cplex, sarei in grado di scrivere un solo modello che può essere risolto prima con $x_{ij}$e poi per le variabili continue ($0 \leq x_{ij} \leq 1$)? Voglio vedere al volo il divario tra LP-R e MIP e non voglio costruire due diversi modelli LP e MILP.

Risposte

2 AlexFleischer Aug 20 2020 at 21:53

Il tipo di variabile non può essere modificato. Tuttavia, può essere sovrascritto per un particolare modello aggiungendo un oggetto IloConversion, che consente di specificare nuovi tipi per le variabili all'interno di quel modello. Quando ILOG CPLEX trova un oggetto di conversione nel modello attivo, utilizza i tipi di variabile specificati nell'oggetto di conversione invece del tipo originale specificato per l'ottimizzazione. Ad esempio in un modello contenente:

IloNumVar x = cplex.numVar(0.0, 1.0);   
cplex.add(cplex.conversion(x, IloNumVarType.Int));