Path: news.mathworks.com!newsfeed-00.mathworks.com!kanaga.switch.ch!switch.ch!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!multikabel.net!feed20.multikabel.net!surfnet.nl!surfnet.nl!news.wind.surfnet.nl!News.Dal.Ca!newsflash.concordia.ca!canopus.cc.umanitoba.ca!not-for-mail
From: roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson)
Newsgroups: comp.soft-sys.matlab
Subject: Re: Find Minimum
Date: Mon, 11 Feb 2008 16:34:31 +0000 (UTC)
Organization: National Research Council Canada - Conseil national de rechereches Canada
Lines: 45
Message-ID: <fopten$3j$1@canopus.cc.umanitoba.ca>
References: <ac460e51-a1a5-4e93-9031-220be5a23e5a@f10g2000hsf.googlegroups.com>
NNTP-Posting-Host: origin.ibd.nrc.ca
X-Trace: canopus.cc.umanitoba.ca 1202747671 115 192.70.172.160 (11 Feb 2008 16:34:31 GMT)
X-Complaints-To: abuse@cc.umanitoba.ca
NNTP-Posting-Date: Mon, 11 Feb 2008 16:34:31 +0000 (UTC)
Originator: roberson@ibd.nrc-cnrc.gc.ca (Walter Roberson)
Xref: news.mathworks.com comp.soft-sys.matlab:450593


In article <ac460e51-a1a5-4e93-9031-220be5a23e5a@f10g2000hsf.googlegroups.com>,
shapper  <mdmoura@gmail.com> wrote:

>I have a function as follows:

>X = MyFun(A, B, C)

>The only thing I know is to evaluate the function value.

>I need the values of A, B and C that minimizes the value of X using
>the following constraints:

>- A must be an integer.
>- B be a multiple of 10 between 0 and 200, i.e., 10, 20, 30, 40, ...
>- C must be a multiple of 0.01 between 0 and 1, i.e, 0.01, 0.02, ... ,
>0.98, 0.99, 1

>I think the best way to solve this would be random search like genetic
>algorithms.

>Can I solve this problem in Matlab?

No you cannot. Although you have a limited number of B and C to try,
you have an infinite number of A to try. All you know about MyFun
is how to evaluate it, so you have no information about how smooth
it is or how many local minima it has or what its derivatives are,
so the only way to find the global minima under those constraints
would be to evaluate the function over all (countably-) infinite
number of combinations.

For example, the function might have a component which
looks like  (A+34923217)^1062 -- a component which vanishes
for A = -34923217 but is very large elsewhere. Or perhaps
more subtly, sin((A+34923217)^1062) which will produce plenty
of small values along the way but only -one- A will minimize the
sine all the way to 0. Finding that particular A that minimizes
the value without knowing anything about the properties of the
function is effectively impossible (even if you did happen to
find A = -34923217 how would you know that there wasn't some
other A such as 670435238743202132191231275432943221794663243143213980218
that resulted in a function value 1E-9 lower?)
particular A 
-- 
  "The beauties of conception are always superior to those of
   expression."                               -- Walter J. Phillips