2
$\begingroup$

I have a small non-linear, chess related, program with linear constraints and an objective function obtained from a polynomial probability generating function including some decision variables . At present there are 4 decision variables, corresponding to a team of 4 players, to be eventually ideally increased up to 16.

In general , I believe that the global optimum is at an extreme point of the convex polytope, feasible region but there are local optima at extreme points also.

On the small problem, all Mathematica non-linear codes give the same optimal solutions (with some appropriate permutations of variables).

Simulated annealing seems appropriate given the local optima concerns. Any advice from experts or experienced users about appropriate methods would be welcome. I really don't want to try every method on each problem over the next few months.

Our players A, B, C, and D play on boards 1-4 respectively. Our team has an expected score of BD(I) on Board I, I = 1, 4. The decision variables xa,..xd are our "ideal" probability of a draw for each player, before a move is made, given the constraints on expected score on each board. "Ideal" in the sense of maximising the probability of gaining at least 5 points, i.e winning the match.

Manipulate[
 NMaximize[{Coefficient[((1 - 0.5 Bd1 - 0.5 xa) + 
        xa*y + (0.5 Bd1 - 0.5 xa) y^2)*((1 - 0.5 Bd2 - 0.5 xb) + 
        xb*y + (0.5 Bd2 - 0.5 xb) y^2)*((1 - 0.5 Bd3 - 0.5 xc) + 
        xc*y + (0.5 Bd3 - 0.5 xc) y^2)*((1 - 0.5 Bd4 - 0.5 xd) + 
        xd*y + (0.5 Bd4 - 0.5 xd) y^2), y, 5] + 
    Coefficient[((1 - 0.5 Bd1 - 0.5 xa) + 
        xa*y + (0.5 Bd1 - 0.5 xa) y^2)*((1 - 0.5 Bd2 - 0.5 xb) + 
        xb*y + (0.5 Bd2 - 0.5 xb) y^2)*((1 - 0.5 Bd3 - 0.5 xc) + 
        xc*y + (0.5 Bd3 - 0.5 xc) y^2)*((1 - 0.5 Bd4 - 0.5 xd) + 
        xd*y + (0.5 Bd4 - 0.5 xd) y^2), y, 6] + 
    Coefficient[((1 - 0.5 Bd1 - 0.5 xa) + 
        xa*y + (0.5 Bd1 - 0.5 xa) y^2)*((1 - 0.5 Bd2 - 0.5 xb) + 
        xb*y + (0.5 Bd2 - 0.5 xb) y^2)*((1 - 0.5 Bd3 - 0.5 xc) + 
        xc*y + (0.5 Bd3 - 0.5 xc) y^2)*((1 - 0.5 Bd4 - 0.5 xd) + 
        xd*y + (0.5 Bd4 - 0.5 xd) y^2), y, 7] + 
    Coefficient[((1 - 0.5 Bd1 - 0.5 xa) + 
        xa*y + (0.5 Bd1 - 0.5 xa) y^2)*((1 - 0.5 Bd2 - 0.5 xb) + 
        xb*y + (0.5 Bd2 - 0.5 xb) y^2)*((1 - 0.5 Bd3 - 0.5 xc) + 
        xc*y + (0.5 Bd3 - 0.5 xc) y^2)*((1 - 0.5 Bd4 - 0.5 xd) + 
        xd*y + (0.5 Bd4 - 0.5 xd) y^2), y, 8], xa <= Bd1, xb <= Bd2, 
   xc <= Bd3, xd <= Bd4, xa >= 0, xb >= 0, xc >= 0, xd >= 0, xa <= 1, 
   xb <= 1, xc <= 1, xd <= 1, Bd1 + xa <= 2, Bd2 + xb <= 2, 
   Bd3 + xc <= 2, Bd4 + xd <= 2}, {xa, xb, xc, xd}, 
  Method -> "SimulatedAnnealing"], {Bd1, 0.2, 1.8, 0.2}, {Bd2, 0.2, 
  1.8, 0.2}, {Bd3, 0.2, 1.8, 0.2}, {Bd4, 0.2, 1.8, 0.2}]
$\endgroup$

closed as off-topic by user9660, MarcoB, Öskå, Michael E2, Jason B. May 3 '16 at 7:21

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question arises due to a simple mistake such as a trivial syntax error, incorrect capitalization, spelling mistake, or other typographical error and is unlikely to help any future visitors, or else it is easily found in the documentation." – MarcoB, Öskå
If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ It would be good if you can post a/some sample problems, your code and results. $\endgroup$ – Sektor Jul 14 '15 at 15:40
  • $\begingroup$ Hope this clear. Terms from 6-8 points edited out, together with probability constraints on Boards 1-4 and Manipulate repetition because of character limit here. 2 points for Win 1 point for draw. Manipulate[ NMaximize[{Coefficient[((1 - 0.5 Bd1 - 0.5 xa) + xay + (0.5 Bd1 - 0.5 xa) y^2)*((1 - 0.5 Bd2 - 0.5 xb) + xby + (0.5 Bd2 - 0.5 xb) y^2)*((1 - 0.5 Bd3 - 0.5 xc) + xcy + (0.5 Bd3 - 0.5 xc) y^2)*((1 - 0.5 Bd4 - 0.5 xd) + xdy + (0.5 Bd4 - 0.5 xd) y^2), y, 5] , ..., {xa, xb, xc, xd}, Method -> "SimulatedAnnealing"], {Bd1, 0.2, 1.8, 0.2}, ...] $\endgroup$ – Ian Calvert Jul 14 '15 at 15:56
  • $\begingroup$ You can edit your post by clicking the edit link under it. Please add your code example in the original post, and expand on the meaning of variables etc. Make sure to format your code snipped as such (use the {} button on the editing toolbar). $\endgroup$ – MarcoB Jul 14 '15 at 16:04
  • $\begingroup$ MarcoB, Code added as you requested. $\endgroup$ – Ian Calvert Jul 14 '15 at 16:24
  • 1
    $\begingroup$ Thank you. I wonder if you have already seen the following Tutorial: Numerical Nonlinear Global Optimization. I am not sure that it will necessarily be enlightening, but it may at least yield some further insight into each methods' options. $\endgroup$ – MarcoB Jul 14 '15 at 16:46