Compartir a través de


Función SolverOptions

Permite especificar opciones avanzadas del modelo de Solver. Esta función y sus argumentos corresponden a las opciones del cuadro de diálogo Opciones de Solver.

Nota El complemento Solver no está habilitado de forma predeterminada. Para poder usar esta función, debe tener el complemento de Solver habilitado e instalado. Para obtener información sobre cómo hacer eso, consulte Uso de las funciones de Solver VBA. Una vez instalado el complemento de Solver, debe establecer una referencia al complemento de Solver. En el Editor de Visual Basic, con un módulo activo, haga clic en Referencias en el menú Herramientas y, después, seleccione Solucionador en Referencias disponibles. Si Solver no aparece en Referencias disponibles, haga clic en Examinar y, a continuación, abra Solver.xlam en la subcarpeta \Archivos de programa\Microsoft Office\Office14\Library\SOLVER.

SolverOptions(MaxTime, Iterations, Precision, AssumeLinear, StepThru, Estimates, Derivatives, SearchOption, IntTolerance, Scaling, Convergence, AssumeNonNeg, PopulationSize, RandomSeed, MultiStart, RequireBounds, MutationRate, MaxSubproblems, MaxIntegerSols, SolveWithout, MaxTimeNoImp)

MaxTimeVariant opcional. La cantidad máxima de tiempo (en segundos) que empleará Solver en solucionar el problema. El valor debe ser un entero positivo.

IterationsVariant opcional. El número máximo de iteraciones que Solver usará para solucionar el problema. El valor debe ser un entero positivo.

PrecisionVariant opcional. Un número comprendido entre 0 (cero) y 1 que especifica el grado de precisión con el que se deben cumplir las restricciones (incluidas las restricciones de enteros). La precisión predeterminada es 0,000001. Un número menor de decimales (por ejemplo, 0,0001) indica un grado de precisión más bajo. Por lo general, cuanto más alto sea el grado de precisión (números más pequeños), más tiempo tardará Solver en resolver los problemas.

AssumeLinearVariant opcional. True para que Solver suponga que el modelo subyacente es lineal. Esto acelera el cálculo de soluciones, pero solo debe usarse si todas las relaciones del modelo son lineales. El valor predeterminado es False. StepThruVariant opcional. True para que Solver haga una pausa en cada solución de ensayo. Puede pasar a Solver una macro para ejecutarla en cada pausa mediante el argumento ShowRef de la función SolverSolve . False para que Solver no haga una pausa en cada solución de ensayo. El valor predeterminado es False.

EstimatesVariant opcional. Especifica la aproximación empleada para obtener las estimaciones iniciales de las variables básicas en una búsqueda de una dimensión: 1 representa estimaciones tangenciales y 2 representa estimaciones cuadráticas. Las estimaciones tangenciales usan extrapolación lineal de un vector tangente. Las estimaciones cuadráticas usan extrapolación cuadrática, lo que puede mejorar los resultados para problemas no lineales. El valor predeterminado es 1 (estimaciones tangenciales).

DerivativesVariant opcional. Especifica diferenciales progresivas o centrales para las estimaciones de derivadas parciales de las funciones de restricción y objetivo: 1 representa diferencial progresiva y 2 representa diferencial central. La diferencial central exige más actualizaciones en la hoja, pero puede ser útil en los problemas que generen un mensaje que indica que Solver no pudo mejorar la solución. En las restricciones cuyos valores cambien rápidamente cerca de los límites, use diferencial central. El valor predeterminado es 1 (diferencial central).

SearchOptionVariant opcional. Use las opciones de búsqueda para especificar el algoritmo de búsqueda que se usará en cada iteración para decidir en qué dirección buscar: 1 representa el método de búsqueda newton y 2 representa el método de búsqueda conjugado. El método predeterminado es el de Newton, que usa un método cuasi-Newton.

IntToleranceVariant opcional. Un número decimal comprendido entre 0 (cero) y 100 que especifica el porcentaje de tolerancia de Optimalidad de entero. Este argumento solo es aplicable si se han definido restricciones de enteros; especifica que Solver puede detenerse si encuentra una solución viable de enteros cuyo objetivo está dentro de este porcentaje del límite más conocido en el objetivo de la verdadera solución óptima de entero. Un porcentaje de tolerancia más alto tiende a acelerar la búsqueda de soluciones.

ScalingVariant opcional. Si el objetivo o las restricciones difieren en varios órdenes de magnitud, por ejemplo, maximizando el porcentaje de ganancia basado en inversiones de millones de dólares, se debe establecer esta opción en True para que Solver ajuste internamente los valores de las restricciones y los objetivos a órdenes de magnitud similares durante los cálculos. Si esta opción es False, Solver realizará los cálculos sin ajustar con los valores originales de los objetivos y las restricciones. El valor predeterminado es True.

ConvergenceVariant opcional. Un número comprendido entre 0 (cero) y 1 que especifica el grado de tolerancia de convergencia que se usará para los métodos de resolución GRG Nonlinear y Evolutionary. Para el método GRG, si el cambio relativo del valor de la celda objetivo es menor que esta tolerancia durante las cinco últimas iteraciones, Solver se detiene. Para el método Evolutionary, si el 99% o más miembros de la población tienen valores "de adecuación" cuya diferencia relativa, es decir, porcentaje, es menor que la tolerancia, Solver se detiene. En ambos casos, Solver muestra el mensaje "Solver converge a la solución actual. Se satisfacen todas las restricciones".

AssumeNonNegVariant opcional. True para que Solver asuma un límite inferior de 0 (cero) para todas las celdas de variables de decisión que no tengan límites inferiores explícitos en el cuadro de lista Restricción (las celdas deben contener valores no negativos). False para que Solver use solo los límites especificados en el cuadro de lista Restricción.

PopulationSize Optional Variant. True para que Solver asuma un límite inferior de 0 (cero) para todas las celdas de variables de decisión que no tengan límites inferiores explícitos en el cuadro de lista Restricción (las celdas deben contener valores no negativos). False to have Solver use only the limits specified in the Constraint list box.

RandomSeed Optional Variant. A positive integer specifies a fixed seed for the random number generator used by the Evolutionary Solving method and the multistart method for global optimization. This means that Solver will find the same solution each time it is run on a model that has not changed. A zero value specifies that Solver should use a different seed for the random number generator each time it runs, which may yield different solutions each time it is run on a model that has not changed.

Inicio múltipleVariant opcional. True para que Solver use el método multistart para la optimización global con el método GRG Nonlinear Solving , cuando se llama a SolverSolve . False para que Solver ejecute el método de resolución GRG solo una vez, sin inicio múltiple, cuando se llama a SolverSolve.

RequireBounds Optional Variant. True para hacer que el método evolutionary Solving y el método multistart devuelvan inmediatamente desde una llamada a SolverSolve con un valor de 18 si alguna de las variables no tiene límites inferiores y superiores definidos. False to have these methods attempt to solve the problem without bounds on all of the variables.

MutationRate Optional Variant. A number between 0 (zero) and 1 that specifies the rate at which the Evolutionary Solving method will make "mutations" to existing population members. A higher Mutation rate tends to increase the diversity of the population, and may yield better solutions.

MaxSubproblems Optional Variant. The maximum number of subproblems Solver will explore in problems with integer constraints, and problems solved via the Evolutionary Solving method. The value must be a positive integer.

MaxIntegerSols Optional Variant. The maximum number of feasible (or integer feasible) solutions Solver will consider in problems with integer constraints, and problems solved via the Evolutionary Solving method. The value must be a positive integer.

SolveWithout Optional Variant. True to have Solver ignore any integer constraints and solve the "relaxation" of the problem. False to have Solver use the integer constraints in solving the problem.

MaxTimeNoImpVariant opcional. Cuando se usa el método de resolución Evolutionary, la cantidad máxima de tiempo (en segundos) que empleará Solver para continuar con las soluciones sin encontrar ninguna con mejoras significativas para agregar a la población. Debe ser un valor positivo.

Ejemplo

En este ejemplo se establece la opción Precisión en 0,001.

Worksheets("Sheet1").Activate 
SolverReset 
SolverOptions Precision:=0.001 
SolverOK SetCell:=Range("TotalProfit"), _ 
    MaxMinVal:=1, _ 
    ByChange:=Range("C4:E6") 
SolverAdd CellRef:=Range("F4:F6"), _ 
    Relation:=1, _ 
    FormulaText:=100 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=3, _ 
    FormulaText:=0 
SolverAdd CellRef:=Range("C4:E6"), _ 
    Relation:=4 
SolverSolve UserFinish:=False 
SolverSave SaveArea:=Range("A33")

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.