intlinprog
puede llamar a una función de salida o una función de trazado después de que se produzcan ciertos eventos en el algoritmo.intlinprog
Estos eventos incluyen completar una fase del algoritmo, como resolver el problema de la raíz LP, agregar recortes, completar una heurística con éxito, encontrar una nueva solución de enteros factible durante la bifurcación y el límite, mejorar sensiblemente la brecha relativa o explorar un número de nodos en un árbol de bifurcación y enlazado.
Precaución
funciones de salida y las funciones de trazado difieren de las de otros solucionadores.intlinprog
Para funciones de salida o funciones de trazado en otros solucionadores, consulte y.Optimization Toolbox™Sintaxis de función de salidaSintaxis de función de trazado
Hay una función de salida incorporada:.savemilpsolutions
Esta función recopila los puntos de entero factibles que el algoritmo encuentra en los tiempos de evento. Coloca los puntos factibles en una matriz denominada en el área de trabajo base, donde cada columna es un punto entero factible.xIntSol
Guarda los valores de la función objetiva en un vector llamado, donde cada entrada es la función objetiva de la columna correspondiente en.fIntSol
xIntSol
Hay una función de trazado incorporada:.optimplotmilp
Esta función traza los límites calculados internamente en el valor de la mejor función objetivo. Para ver un ejemplo de su uso, consulte.Fábrica, almacén, modelo de asignación de ventas: basado en Solver
Llame a funciones de salida o funciones de trazado pasando los pares de nombre-valor, incluido el identificador de la función de salida o la función de trazado.OutputFcn
PlotFcn
Por ejemplo,
options = optimoptions(@intlinprog,'OutputFcn',@savemilpsolutions,'PlotFcn',@optimplotmilp); x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options);
Si tiene varias funciones de salida o funciones de trazado, pácelas como una matriz de celdas.
options = optimoptions(@intlinprog,'OutputFcn',{@savemilpsolutions,@customFcn});
Escriba su propia función de salida o función de trazado utilizando esta sintaxis:
function stop = customFcn(x,optimValues,state)
pasa los datos, y a su función.intlinprog
x
optimValues
state
— Se detendrá.stop
true
intlinprog
Se establece en para permitir continuar.false
intlinprog
— Ya sea una matriz vacía o un-por-vector que es un punto factible. no está vacía sólo cuando encuentra una nueva solución de entero factible. puede ser no vacío cuando es o.x
[]
N
1
x
intlinprog
x
phase
'heuristics'
'branching'
— Una estructura cuyos detalles están en.optimValues
EstructuraoptimValues
— Uno de estos valores:state
— está comenzando.'init'
intlinprog
Utilice este estado para configurar los trazados o estructuras de datos que necesite.
— está resolviendo el problema.'iter'
intlinprog
Acceda a los datos relacionados con el progreso del solucionador. Por ejemplo, trazar o realizar operaciones de archivo.
— ha terminado de resolver el problema.'done'
intlinprog
Cierre los archivos, termine de anotar los trazados, etc.
Para ver ejemplos de escritura de resultados o funciones de trazado, consulte las funciones integradas o.savemilpsolutions.m
optimplotmilp.m
optimValues
CampooptimValues | Significado |
---|---|
phase | Fase del algoritmo. Valores posibles:
|
fval | La mejor función objetiva encontrada hasta ahora en un punto entero factible. When =, es el valor de la función objetiva en el nodo raíz, que no es necesariamente un punto entero factible. |
lowerbound | Límite inferior global del valor de la función objetiva. Vacío cuando =. |
relativegap | Brecha relativa entre y. |
numnodes | Número de nodos explorados. Distinto de cero solo cuando =. |
numfeaspoints | Número de soluciones factibles enteras encontradas. |
time | Tiempo en segundos pasados hasta ahora, medido con y desde el momento en que =. |