Re: Problems minimizing an overconstrained system

• To: mathgroup at smc.vnet.net
• Subject: [mg80715] Re: Problems minimizing an overconstrained system
• From: Yaroslav Bulatov <yaroslavvb at gmail.com>
• Date: Thu, 30 Aug 2007 02:28:14 -0400 (EDT)
• References: <fb0erc\$eo6\$1@smc.vnet.net><fb0ul5\$jia\$1@smc.vnet.net>

```That was the simplest example which could demonstrate the problem. A
more realistic example is below. It seems that FindMinimum fails
whenever there are redundant constraints (ie, x1<=a, x1==a). The
simplest solution I found is to use "Reduce" on the set of constraints
to get rid of any redundant ones.

cons = (p[1] + p[2] + p[3] == 1) && (p[4] + p[5] + p[6] ==
1) && (p[7] + p[8] + p[9] == 1) && 1/10 <= p[1] <= 4/5 &&
1/10 <= p[2] <= 4/5 && 1/10 <= p[3] <= 4/5 && 1/10 <= p[4] <= 4/5
&&
1/10 <= p[5] <= 4/5 && 1/10 <= p[6] <= 4/5 &&
1/10 <= p[7] <= 4/5 && 1/10 <= p[8] <= 4/5 && 1/10 <= p[9] <= 4/5
&&
p[1] == 8/10;
initial = {{p[1], 8/10}, {p[2], 1/10}, {p[3], 1/10}, {p[4],
1/3}, {p[5], 1/3}, {p[6], 1/3}, {p[7], 1/3}, {p[8], 1/3}, {p[9],
1/3}};
FindMinimum[{Max[1, (p[2] p[4])/(p[1] p[5]), (p[1] p[5])/(
p[2] p[4]), (p[3] p[4])/(p[1] p[6]), (p[3] p[5])/(p[2] p[6]), (
p[1] p[6])/(p[3] p[4]), (p[2] p[6])/(p[3] p[5]), (p[2] p[7])/(
p[1] p[8]), (p[5] p[7])/(p[4] p[8]), (p[1] p[8])/(p[2] p[7]), (
p[4] p[8])/(p[5] p[7]), (p[3] p[7])/(p[1] p[9]), (p[6] p[7])/(
p[4] p[9]), (p[3] p[8])/(p[2] p[9]), (p[6] p[8])/(p[5] p[9]), (
p[1] p[9])/(p[3] p[7]), (p[4] p[9])/(p[6] p[7]), (p[2] p[9])/(
p[3] p[8]), (p[5] p[9])/(p[6] p[8])], cons}, initial]
cons /. Rule @@@ initial

----

cons = (p[1] + p[2] + p[3] == 1) && (p[4] + p[5] + p[6] ==
1) && (p[7] + p[8] + p[9] == 1) && 1/10 <= p[1] <= 4/5 &&
1/10 <= p[2] <= 4/5 && 1/10 <= p[3] <= 4/5 && 1/10 <= p[4] <= 4/5
&&
1/10 <= p[5] <= 4/5 && 1/10 <= p[6] <= 4/5 &&
1/10 <= p[7] <= 4/5 && 1/10 <= p[8] <= 4/5 && 1/10 <= p[9] <= 4/5
&&
p[1] == 4/5;
initial = {{p[1], 8/10}, {p[2], 1/10}, {p[3], 1/10}, {p[4],
1/3}, {p[5], 1/3}, {p[6], 1/3}, {p[7], 1/3}, {p[8], 1/3}, {p[9],
1/3}};
FindMinimum[{Max[1, (p[2] p[4])/(p[1] p[5]), (p[1] p[5])/(
p[2] p[4]), (p[3] p[4])/(p[1] p[6]), (p[3] p[5])/(p[2] p[6]), (
p[1] p[6])/(p[3] p[4]), (p[2] p[6])/(p[3] p[5]), (p[2] p[7])/(
p[1] p[8]), (p[5] p[7])/(p[4] p[8]), (p[1] p[8])/(p[2] p[7]), (
p[4] p[8])/(p[5] p[7]), (p[3] p[7])/(p[1] p[9]), (p[6] p[7])/(
p[4] p[9]), (p[3] p[8])/(p[2] p[9]), (p[6] p[8])/(p[5] p[9]), (
p[1] p[9])/(p[3] p[7]), (p[4] p[9])/(p[6] p[7]), (p[2] p[9])/(
p[3] p[8]), (p[5] p[9])/(p[6] p[8])],
Reduce[cons, p[#] & /@ Range[9]]}, initial]
cons /. Rule @@@ initial

```

• Prev by Date: Re: Re: Re: Another question on lists
• Next by Date: Re: Re: Re: Another question on lists
• Previous by thread: Re: Problems minimizing an overconstrained system
• Next by thread: Mistake in applying a rule