Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Función de salida y sintaxis de función de trazadointlinprog

¿Qué son las funciones de salida y las funciones de trazado?

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.fIntSolxIntSol

  • 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.OutputFcnPlotFcn 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});

Sintaxis de función personalizada

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.intlinprogxoptimValuesstate

  • — Se detendrá.stoptrueintlinprog Se establece en para permitir continuar.falseintlinprog

  • — 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[]N1xintlinprogxphase'heuristics''branching'

  • — Una estructura cuyos detalles están en.optimValuesEstructuraoptimValues

  • — 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.moptimplotmilp.m

EstructuraoptimValues

CampooptimValuesSignificado
phase

Fase del algoritmo. Valores posibles:

  • — resolvió el problema de la raíz LP.'rootlp'intlinprog

  • — añade cortes y mejora el límite inferior.'cutgen'intlinprog

  • : se han encontrado nuevos puntos factibles mediante heurística.'heuristics'intlinprog

  • : es crear y explorar nodos en un árbol de bifurcación y enlazado.'branching'intlinprog

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.phase'rootlp'fval

lowerbound

Límite inferior global del valor de la función objetiva. Vacío cuando =.phase'rootlp'

relativegap

Brecha relativa entre y.lowerboundfval Vacío cuando = o =.phase'rootlp'numfeaspoints0

numnodes

Número de nodos explorados. Distinto de cero solo cuando =.phase'branching'

numfeaspoints

Número de soluciones factibles enteras encontradas.

time

Tiempo en segundos pasados hasta ahora, medido con y desde el momento en que =.tictocstate'init'