Re: NMinimize with numerically evaluated constraints

• To: mathgroup at smc.vnet.net
• Subject: [mg66251] Re: [mg66229] NMinimize with numerically evaluated constraints
• From: gregorc <gregor.cernivec at fe.uni-lj.si>
• Date: Fri, 5 May 2006 05:03:17 -0400 (EDT)
• References: <200605040921.FAA09614@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Fernando Bernardo wrote:

> Hi there!
>
>I'm trying to solve an optimization problem, with constraints g(x)<=0
>(x are decision variables), such that the evaluation of g(x) for a
>particular x requires a numerical procedure. So far, I've been able to
>use NMinimize with g(x) defined analytically as a function of the symbol
>x, while the objective function f(x) can be restricted to a numerical
>input x as follows:
>
>fOBJ[x_ /; NumericQ[x]]:=Module[{},...; Return[fOBJval]]
>
>
>Is it possible to apply this numerical input restriction also to the
>constraints g(x) ??? Thanks for your help.
>
>Fernando Pedro Martins Bernardo
>Department of Chemical Engineering
>University of Coimbra
>P=F3lo II - Pinhal de Marrocos
>3030-290 Coimbra
>Portugal
>Tele: +351-239-798722
>Fax: +351-239-798703
>bernardo at eq.uc.pt
>
>
>__________ NOD32 1.1519 (20060504) Information __________
>
>This message was checked by NOD32 antivirus system.
>http://www.eset.com
>
>
>
>
>
Hi,

You can try to minimize f(x) with the penalty function. The idea is to
multiply the objective function with a penalty function and minimize
their product. The penalty function is increased, when in the process of
the minimization the constraints are broken. This wil turn the
optimization path in the oposite direction. E.g. New objective function
is P*f(x), if g(x)<= 0 P=100 else P=1. This is a step like penalty
function. You can produce also countinious penalty functions for better
convergence of the minimization.

Best regards,

Cernivec Gregor.

```

• Prev by Date: Problems with FindRoot
• Next by Date: Re: Root's third argument?
• Previous by thread: NMinimize with numerically evaluated constraints
• Next by thread: Testing for squares