0
|
4120 Views
|
3 Replies
|
2 Total Likes
View groups...
Share

# How to find global minimum value for big, exact objective function

Posted 10 years ago
 I am trying to find "global minimum" value of the objective function using " Minimize[] " , it takes hours and never comes back.Is there any other alternative ? or any option which I am missing ? Please check the code below:P.S: I dont want NMinimize because I need global Minimum   Minimize[{Abs[((3608946673948233*d)/            4503599627370496 + (274464355232027*e)/            2251799813685248 - (274464355232027*              e^2)/(4*(562949953421312*e + 562949953421312*f -                5536725273124715)) -           1519633732185043491981133247305/            1267650600228229401496703205376)] +        Abs[((4636666003778669*b)/9007199254740992 + (1118552746194141*c)/            2251799813685248 + (29870012493936382538794142709149*            b)/(9007199254740992*(9007199254740992*b +              9007199254740992*c -              6442131581095921)) + (7205863971378845991234609198861*            c)/(2251799813685248*(9007199254740992*b +              9007199254740992*c -              6442131581095921)) - (4636666003778669*            b*(b + c))/(9007199254740992*b + 9007199254740992*c -            6442131581095921) - (4474210984776564*            c*(b + c))/(9007199254740992*b + 9007199254740992*c -            6442131581095921))] +      Abs[((274464355232027*e)/          2251799813685248 + (1519633732185043491981133247305*            e)/(2251799813685248*(562949953421312*e +              562949953421312*f - 5536725273124715)) - (274464355232027*                       e*(e + f))/(4*(562949953421312*e + 562949953421312*f -              5536725273124715)))] +      Abs[((792979490709637*b)/1125899906842624 - (901702497811663*c)/          2251799813685248 + (4891864612675574504296157138923*            b)/(1125899906842624*(2251799813685248*b +              2251799813685248*c -              6168967381864879)) - (5562573297146236482969456283777*            c)/(2251799813685248*(2251799813685248*b +              2251799813685248*c -              6168967381864879)) - (1585958981419274*            b*(b + c))/(2251799813685248*b + 2251799813685248*c -            6168967381864879) + (901702497811663*            c*(b + c))/(2251799813685248*b + 2251799813685248*c -            6168967381864879))] +      Abs[((8431533077325893*b)/18014398509481984 - (708586604185451*c)/          4503599627370496 + (54368167798740930523060826625213*            b)/(18014398509481984*(1125899906842624*b +              1125899906842624*c -              6448194806345241)) - (4569104460954436146783095288691*            c)/(4503599627370496*(1125899906842624*b +              1125899906842624*c -              6448194806345241)) - (8431533077325893*                       b*(b + c))/(16*(1125899906842624*b + 1125899906842624*c -              6448194806345241)) + (708586604185451*            c*(b + c))/(4*(1125899906842624*b + 1125899906842624*c -              6448194806345241)))] +      Abs[((4474210984776564*c^2)/(9007199254740992*b +            9007199254740992*c - 6442131581095921) - (177126692422487*            d)/1125899906842624 - (1118552746194141*c)/          2251799813685248 + (4636666003778669*b*            c)/(9007199254740992*b + 9007199254740992*c -            6442131581095921) +         7205863971378845991234609198861/          20282409603651670423947251286016)] +      Abs[((2035957719017013*            b^2)/(1024*(140737488355328*b + 140737488355328*c -              2249387656040967)) - (2035957719017013*b)/          144115188075855872 - (2035957719017013*a)/          144115188075855872 + (2939179565022695*b*            c)/(64*(140737488355328*b + 140737488355328*c -              2249387656040967)) +         4579658161378192576066497971571/          20282409603651670423947251286016)] +      Abs[((5056216978909333*b)/          36028797018963968 + (3060017963484179*c)/          4503599627370496 + (27994884333529598097197586465095*            b)/(36028797018963968*(562949953421312*b +              562949953421312*c -              5536725273124715)) + (16942478794638475145271796383985*            c)/(4503599627370496*(562949953421312*b +              562949953421312*c -              5536725273124715)) - (5056216978909333*            b*(b + c))/(64*(562949953421312*b + 562949953421312*c -              5536725273124715)) - (3060017963484179*            c*(b + c))/(8*(562949953421312*b + 562949953421312*c -              5536725273124715)))] +      Abs[((2939179565022695*            c^2)/(64*(140737488355328*b + 140737488355328*c -              2249387656040967)) - (2230056655377591*d)/          2251799813685248 - (2939179565022695*c)/          9007199254740992 + (2035957719017013*b*            c)/(1024*(140737488355328*b + 140737488355328*c -              2249387656040967)) +         6611354232449908862093204746065/          1267650600228229401496703205376)] +      Abs[((3860418273669689*e)/          9007199254740992 + (24892729062597149834655331100049*            e)/(9007199254740992*(1125899906842624*e +              1125899906842624*f -              6448194806345241)) - (3860418273669689*            e*(e + f))/(8*(1125899906842624*e + 1125899906842624*f -              6448194806345241)))] +      Abs[((4636666003778669*b^2)/(9007199254740992*b +            9007199254740992*c - 6442131581095921) - (4636666003778669*          b)/9007199254740992 - (4636666003778669*a)/        9007199254740992 + (4474210984776564*b*          c)/(9007199254740992*b + 9007199254740992*c -          6442131581095921) +       29870012493936382538794142709149/        81129638414606681695789005144064)] +    Abs[((8431533077325893*a)/        18014398509481984 + (8431533077325893*b)/        18014398509481984 - (8431533077325893*          b^2)/(16*(1125899906842624*b + 1125899906842624*c -            6448194806345241)) + (708586604185451*b*          c)/(4*(1125899906842624*b + 1125899906842624*c -            6448194806345241)) -       54368167798740930523060826625213/        20282409603651670423947251286016)] +    Abs[((5981047056487669*e)/        9007199254740992 + (13453693419063522919576994335923*          e)/(9007199254740992*(140737488355328*e +            140737488355328*f -            2249387656040967)) - (5981047056487669*          e*(e + f))/(64*(140737488355328*e + 140737488355328*f -            2249387656040967)))] +    Abs[((792979490709637*a)/1125899906842624 + (792979490709637*b)/        1125899906842624 - (1585958981419274*          b^2)/(2251799813685248*b + 2251799813685248*c -          6168967381864879) + (901702497811663*b*          c)/(2251799813685248*b + 2251799813685248*c -          6168967381864879) -       4891864612675574504296157138923/        2535301200456458802993406410752)] +    Abs[((4461181249195911*e)/        9007199254740992 + (27520881610876789415202401309769*          e)/(9007199254740992*(2251799813685248*e +            2251799813685248*f -            6168967381864879)) - (4461181249195911*          e*(e + f))/(4*(2251799813685248*e + 2251799813685248*f -            6168967381864879)))] +    Abs[((708586604185451*c)/4503599627370496 + (5277591482040591*d)/        9007199254740992 - (708586604185451*          c^2)/(4*(1125899906842624*b + 1125899906842624*c -            6448194806345241)) + (8431533077325893*b*                   c)/(16*(1125899906842624*b + 1125899906842624*c -            6448194806345241)) -       4569104460954436146783095288691/        5070602400912917605986812821504)] +    Abs[((2035957719017013*b)/        144115188075855872 + (2939179565022695*c)/        9007199254740992 + (4579658161378192576066497971571*          b)/(144115188075855872*(140737488355328*b +            140737488355328*c -            2249387656040967)) + (6611354232449908862093204746065*          c)/(9007199254740992*(140737488355328*b +            140737488355328*c -            2249387656040967)) - (2035957719017013*          b*(b + c))/(1024*(140737488355328*b + 140737488355328*c -            2249387656040967)) - (2939179565022695*          c*(b + c))/(64*(140737488355328*b + 140737488355328*c -            2249387656040967)))] +    Abs[((2230056655377591*d)/2251799813685248 + (5981047056487669*e)/        9007199254740992 - (5981047056487669*          e^2)/(64*(140737488355328*e + 140737488355328*f -            2249387656040967)) -       13453693419063522919576994335923/        1267650600228229401496703205376)] +    Abs[((854371257949259*d)/9007199254740992 + (4461181249195911*e)/        9007199254740992 - (4461181249195911*          e^2)/(4*(2251799813685248*e + 2251799813685248*f -            6168967381864879)) -       27520881610876789415202401309769/        20282409603651670423947251286016)] +    Abs[((854371257949259*d)/9007199254740992 - (901702497811663*c)/        2251799813685248 + (901702497811663*          c^2)/(2251799813685248*b + 2251799813685248*c -          6168967381864879) - (1585958981419274*b*          c)/(2251799813685248*b + 2251799813685248*c -          6168967381864879) +       5562573297146236482969456283777/        5070602400912917605986812821504)] +    Abs[((3060017963484179*          c^2)/(8*(562949953421312*b + 562949953421312*c -            5536725273124715)) - (3608946673948233*d)/        4503599627370496 - (3060017963484179*c)/        4503599627370496 + (5056216978909333*b*          c)/(64*(562949953421312*b + 562949953421312*c -            5536725273124715)) +       16942478794638475145271796383985/        2535301200456458802993406410752)] +    Abs[((177126692422487*d)/1125899906842624 - (764299361349167*e)/        2251799813685248 + (3057197445396668*          e^2)/(9007199254740992*e + 9007199254740992*f -          6442131581095921) +       4923717053158911857783000447807/        20282409603651670423947251286016)] +    Abs[((5277591482040591*d)/9007199254740992 + (3860418273669689*e)/        9007199254740992 - (3860418273669689*          e^2)/(8*(1125899906842624*e + 1125899906842624*f -            6448194806345241)) -       24892729062597149834655331100049/        10141204801825835211973625643008)] +    Abs[((5056216978909333*          b^2)/(64*(562949953421312*b + 562949953421312*c -            5536725273124715)) - (5056216978909333*b)/        36028797018963968 - (5056216978909333*a)/        36028797018963968 + (3060017963484179*b*          c)/(8*(562949953421312*b + 562949953421312*c -            5536725273124715)) +       27994884333529598097197586465095/        20282409603651670423947251286016)] +    Abs[((764299361349167*e)/        2251799813685248 + (4923717053158911857783000447807*          e)/(2251799813685248*(9007199254740992*e +            9007199254740992*f -            6442131581095921)) - (3057197445396668*          e*(e + f))/(9007199254740992*e + 9007199254740992*f -          6442131581095921))], a > 0, b > 0, c > 0, d > 0, e > 0,   f > 0}, {a, b, c, d, e, f}] // N
3 Replies
Sort By:
Posted 10 years ago
 If I add a decimal point to the first constant inside each Abs then Minimize completes in seconds and returns{9.25992, {a -> 1., b -> 2., c -> 3., d -> 4., e -> 0.794416, f -> 1.40992}}If I instead use NMinimize with Method->"RandomSearch" then it completes in seconds and returns{7.76376, {a -> 1., b -> 2., c -> 3., d -> 4., e -> 3.16253, f -> 5.4614}}How can this value be smaller than the value returned by Minimize?If I read the documentation for Minimize under Details and Options it says"If f and cons are linear or polynomial, Minimize will always find a global minimum."You have Abs and rational polynomials and that is neither linear nor polynomial.If you need a global minimum then it appears you need another function or to rewrite your problem in polynomials, and not use Sqrt when trying to avoid Abs.The help page for Minimize also says"If Minimize is given an expression containing approximate numbers, it automatically calls NMinimize."That explains why the result is returned so much faster.
Posted 10 years ago
 When a problem will not complete in a few hours and I have no idea whether that means it will take a few days or a few million years I then look at the problem to see if there is a tower of clearly defined subsets of the problem. If so I start with the smallest subset, time how long it takes for increasingly large sets and hope that will give some indication of how long I will have to wait for the complete solution. Each of your individual Abs can Minimize in less than 1/10 second. Likewise for sums of 2, 3, 4 and even 5 of them. But for 6 and beyond I get multiple warnings Power::infy: Infinite expression 1/0 encountered and the calculation takes longer than I can wait for. If it won't Minimize 6 then I hold out no hope for it finding the solution for 25.Can you look at the structure of the problem and see why it would be finding 1/0 when it attempts to minimize your problem? If this might be able to be removed then perhaps the revised problem could be finished in minutes or hours.
Posted 10 years ago
 For me even first 13-14 expression are working fine.....  Is there any other solution ? like if I can change/set options in minimize function? which might make it more fast or is there any way that I can just restrict calculations uptill 15-16 decimal digits?