Bagaimana saya bisa mengubah jenis variabel keputusan di Concert Technologies (dengan Java)

Aug 20 2020

Saya memiliki model MILP dengan variabel kontinu ($y_{ij}$) dan binari ($x_{ij}$). Saya menggunakan Java dan cplex 12.8 untuk implementasi.

Apakah ada cara - menggunakan Java-cplex API - saya hanya dapat menulis satu model yang dapat diselesaikan terlebih dahulu dengan biner $x_{ij}$'s dan kemudian untuk variabel kontinu ($0 \leq x_{ij} \leq 1$)? Saya ingin melihat jarak antara LP-R dan MIP dengan cepat - dan tidak ingin membangun dua model LP dan MILP yang berbeda.

Jawaban

2 AlexFleischer Aug 20 2020 at 21:53

Jenis variabel tidak dapat diubah. Namun, ini dapat ditimpa untuk model tertentu dengan menambahkan objek IloConversion, yang memungkinkan Anda menentukan tipe baru untuk variabel dalam model itu. Saat ILOG CPLEX menemukan objek konversi dalam model aktif, ia menggunakan jenis variabel yang ditentukan dalam objek konversi alih-alih jenis asli yang ditentukan untuk pengoptimalan. Misalnya dalam model yang berisi:

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