[Date Index]
[Thread Index]
[Author Index]
Re: Problem with Maximize and conditions.
*To*: mathgroup at smc.vnet.net
*Subject*: [mg51091] Re: Problem with Maximize and conditions.
*From*: "Janos D. Pinter" <jdpinter at hfx.eastlink.ca>
*Date*: Mon, 4 Oct 2004 06:18:05 -0400 (EDT)
*References*: <cjlna7$q7f$1@smc.vnet.net> <200410030947.FAA10680@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
Colleagues,
may I add a few general points to the discussion:
- NMinimize (and the other similar fcts) is (are) not set up directly to
solve models that include integer variables. However, it can be used to
produce valid (lower) bounds, by omitting integrality restrictions and then
solving the model. If then one can find a feasible solution, then the
upper/lower bounds can be compared and used e.g. in branch-and-bound
solution strategies.
- Integer variable restrictions can be easily added to the model
formulation as non-convex constraints, but that makes the numerical
solution difficult.
- Except in small models, simple enumeration will not work (e.g., 100
binary vars have 2^100 possible settings).
- Continuous global optimization (GO) - or even integer linear programming
- is already pretty hard; adding integer restrictions to GO models may
increase the difficulty substantially. There is no 'universal' solver to
tackle such models in full generality, for large model-instances (in spite
of some grand claims by 'optimists').
Regards,
Janos Pinter
PS In the MathOptimizer Pro manual, we solve small instances of mixed
integer models by using the continuous GO solver LGO, but the comments
above still apply.
>"Nacho" <ncc1701zzz at hotmail.com> wrote in message
>news:cjlna7$q7f$1 at smc.vnet.net...
> > Hello.
> >
> > I was trying to solve a problem with Mathematica 5 and I am getting
> > strange results.
> >
> > The problem is:
> >
> > Minimize x+y+z, with the condition that 1/20x+y+5z==100 and x,y,z are
> > Integers between 1 and 98 (inclusive).
> >
> > So I use:
> >
> > Minimize[{x+y+z, 1/20 x+y+5z\[Equal]100, x \[Element] Integers,
> > y \[Element] Integers, z\[Element]Integers, 0<x<99,0<y<99,0<z<99},
> > {x,y,
> > z}]
> >
> > I have copied the text using "Plain text" option, I hope it's fine.
> >
> > This returns the same expression, I suppose that Mathematica cannot
> > resolve it. So I use NMinimize:
> >
> > NMinimize[{x+y+z, 1/20 x+y+5z\[Equal]100, x \[Element] Integers,
> > y \[Element] Integers, z\[Element]Integers, 0<x<99,0<y<99,0<z<99},
> > {x,y,
> > z}]
> >
> > Now I get a result, but rather weird...
> >
> > \!\({25.`, {x -> 1, y -> 5, z -> 1899\/100}}\)
> >
> > The minimum of x+y+z is 25 but z is 1899/100
> > 1899/100 is not a Integers, and the nearest Integer, 19, doesn't
> > satisfy 1/20x+y+5z==100, and also x+y+z is not 25 but 24.99
> >
> > I don't know why Mathematica has returned a Real when I specified an
> > Integers. I suppose that it is related to the use of NMinimize. I
> > suppose that it considers that 18.99 is so near of 19 that it can be
> > considered an Integer.
> >
> > If you remove the condition of z being an Integer, the result changes,
> > so it is affecting. Also, if you ask for "1899/100 e Integers" it
> > returns False.
> >
> > So, does anybody know how to solve this? Ideally, I would like to know
> > why Minimize doesn't work (so I have to use NMinimize), but in any
> > case, how to solve the problem.
> >
> > Thanks!
> >
Prev by Date:
**Re: Problem with Maximize and conditions.**
Next by Date:
**Re: Problem with Maximize and conditions.**
Previous by thread:
**Re: Problem with Maximize and conditions.**
Next by thread:
**Re: Problem with Maximize and conditions.**
| |