# Reduce time taken to get feasible solution [closed]

I have such a set of nonlinear inequalities with m variables, Please suggest some good method to get some feasible solutions, where a[i]'s belong to [-5,5].So please suggest an approach, to get feasible solutions of a[i] in the shortest time possible.

Code which uses the NMinimize to solve more complicated inequations. In this NMinimize is not able to do the needful. Error Prompt : The initial region specified may not contain any feasible points. \ Changing the initial region or specifying explicit initial points may provide a better solution.

expr2 = (-2 a[3] (62047 a[4] + 62047 a[5] + 2353552 (a[7] + a[8])) +
a[1] (-62047 a[5] + 124094 a[6] - 2353552 (a[8] - 2 a[9])) +
a[2] (62047 a[4] + 124094 a[6] + 2353552 (a[7] + 2 a[9])) +
1426022 (-2 a[6] (a[7] + a[8]) - a[4] (a[8] - 2 a[9]) +
a[5] (a[7] + 2 a[9])))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (-2 a[3] (47251 a[4] + 47251 a[5] + 2272349 (a[7] + a[8])) +
a[1] (-47251 a[5] + 94502 a[6] - 2272349 (a[8] - 2 a[9])) +
a[2] (47251 a[4] + 94502 a[6] + 2272349 (a[7] + 2 a[9])) +
1374466 (-2 a[6] (a[7] + a[8]) - a[4] (a[8] - 2 a[9]) +
a[5] (a[7] + 2 a[9])))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (-6 a[3] (60403 a[4] + 60403 a[5] + 217313 (a[7] + a[8])) +
3 a[1] (-60403 a[5] + 120806 a[6] - 217313 (a[8] - 2 a[9])) +
3 a[2] (60403 a[4] + 120806 a[6] + 217313 (a[7] + 2 a[9])) +
1070056 (-2 a[6] (a[7] + a[8]) - a[4] (a[8] - 2 a[9]) +
a[5] (a[7] + 2 a[9])))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (-2 a[3] (153431 a[4] + 153431 a[5] + 651525 (a[7] + a[8])) +
a[1] (-153431 a[5] + 306862 a[6] - 651525 (a[8] - 2 a[9])) +
a[2] (153431 a[4] + 306862 a[6] + 651525 (a[7] + 2 a[9])) +
489336 (-2 a[6] (a[7] + a[8]) - a[4] (a[8] - 2 a[9]) +
a[5] (a[7] + 2 a[9])))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (487441232 a[4] - 221321649 a[5] +
2353552 (7856 a[7] - 3567 a[8])) +
a[2] (-243720616 a[4] + 221321649 a[6] -
2353552 (3928 a[7] - 3567 a[9])) +
3928 a[1] (62047 a[5] - 124094 a[6] +
2353552 (a[8] - 2 a[9])) +
1426022 (a[6] (7856 a[7] - 3567 a[8]) +
3928 a[4] (a[8] - 2 a[9]) +
a[5] (-3928 a[7] + 3567 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (371203856 a[4] - 168544317 a[5] +
2272349 (7856 a[7] - 3567 a[8])) +
a[2] (-185601928 a[4] + 168544317 a[6] -
2272349 (3928 a[7] - 3567 a[9])) +
3928 a[1] (47251 a[5] - 94502 a[6] +
2272349 (a[8] - 2 a[9])) +
1374466 (a[6] (7856 a[7] - 3567 a[8]) +
3928 a[4] (a[8] - 2 a[9]) +
a[5] (-3928 a[7] + 3567 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (3 a[
3] (474525968 a[4] - 215457501 a[5] +
217313 (7856 a[7] - 3567 a[8])) +
3 a[2] (-237262984 a[4] + 215457501 a[6] -
217313 (3928 a[7] - 3567 a[9])) +
11784 a[1] (60403 a[5] - 120806 a[6] +
217313 (a[8] - 2 a[9])) +
1070056 (a[6] (7856 a[7] - 3567 a[8]) +
3928 a[4] (a[8] - 2 a[9]) +
a[5] (-3928 a[7] + 3567 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (1205353936 a[4] - 547288377 a[5] +
651525 (7856 a[7] - 3567 a[8])) +
a[2] (-602676968 a[4] +
3 (182429459 a[6] - 217175 (3928 a[7] - 3567 a[9]))) +
3928 a[1] (153431 a[5] - 306862 a[6] +
651525 (a[8] - 2 a[9])) +
489336 (a[6] (7856 a[7] - 3567 a[8]) +
3928 a[4] (a[8] - 2 a[9]) +
a[5] (-3928 a[7] + 3567 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (-703178651 a[4] + 5584230 a[5] -
2353552 (11333 a[7] - 90 a[8])) -
45 a[2] (62047 a[4] + 124094 a[6] + 2353552 (a[7] + 2 a[9])) +
1426022 (-11333 a[6] a[7] + 45 a[4] a[8] + 90 a[6] a[8] +
11333 a[4] a[9] - 45 a[5] (a[7] + 2 a[9])) +
a[1] (2792115 a[5] + 703178651 a[6] +
2353552 (45 a[8] + 11333 a[9])))/(a[
3] (a[5] a[7] - a[4] a[8]) + a[2] (-a[6] a[7] + a[4] a[9]) +
a[1] (a[6] a[8] - a[5] a[9])) >=
0 && (a[3] (-535495583 a[4] + 4252590 a[5] -
2272349 (11333 a[7] - 90 a[8])) -
45 a[2] (47251 a[4] + 94502 a[6] + 2272349 (a[7] + 2 a[9])) +
1374466 (-11333 a[6] a[7] + 45 a[4] a[8] + 90 a[6] a[8] +
11333 a[4] a[9] - 45 a[5] (a[7] + 2 a[9])) +
a[1] (2126295 a[5] + 535495583 a[6] +
2272349 (45 a[8] + 11333 a[9])))/(a[
3] (a[5] a[7] - a[4] a[8]) + a[2] (-a[6] a[7] + a[4] a[9]) +
a[1] (a[6] a[8] - a[5] a[9])) >=
0 && (3 a[
3] (684547199 a[4] - 5436270 a[5] +
217313 (11333 a[7] - 90 a[8])) +
135 a[2] (60403 a[4] + 120806 a[6] + 217313 (a[7] + 2 a[9])) +
1070056 (11333 a[6] a[7] - 45 a[4] a[8] - 90 a[6] a[8] -
11333 a[4] a[9] + 45 a[5] (a[7] + 2 a[9])) -
3 a[1] (2718135 a[5] + 684547199 a[6] +
217313 (45 a[8] + 11333 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (-1738833523 a[4] +
15 (920586 a[5] - 43435 (11333 a[7] - 90 a[8]))) -
45 a[2] (153431 a[4] + 306862 a[6] + 651525 (a[7] + 2 a[9])) +
489336 (-11333 a[6] a[7] + 45 a[4] a[8] + 90 a[6] a[8] +
11333 a[4] a[9] - 45 a[5] (a[7] + 2 a[9])) +
a[1] (6904395 a[5] +
7 (248404789 a[6] + 93075 (45 a[8] + 11333 a[9]))))/(a[
3] (a[5] a[7] - a[4] a[8]) + a[2] (-a[6] a[7] + a[4] a[9]) +
a[1] (a[6] a[8] - a[5] a[9])) >=
0 && (419 a[3] (62047 a[4] + 62047 a[5] + 2353552 (a[7] + a[8])) +
a[1] (367380287 a[5] - 25997693 a[6] +
2353552 (5921 a[8] - 419 a[9])) +
1426022 (-5921 a[5] a[7] + 419 a[6] a[7] + 5921 a[4] a[8] +
419 a[6] a[8] - 419 (a[4] + a[5]) a[9]) -
a[2] (367380287 a[4] + 25997693 a[6] +
2353552 (5921 a[7] + 419 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (419 a[3] (47251 a[4] + 47251 a[5] + 2272349 (a[7] + a[8])) +
a[1] (279773171 a[5] - 19798169 a[6] +
2272349 (5921 a[8] - 419 a[9])) +
1374466 (-5921 a[5] a[7] + 419 a[6] a[7] + 5921 a[4] a[8] +
419 a[6] a[8] - 419 (a[4] + a[5]) a[9]) -
a[2] (279773171 a[4] + 19798169 a[6] +
2272349 (5921 a[7] + 419 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (1257 a[
3] (60403 a[4] + 60403 a[5] + 217313 (a[7] + a[8])) +
3 a[1] (357646163 a[5] - 25308857 a[6] +
217313 (5921 a[8] - 419 a[9])) +
1070056 (-5921 a[5] a[7] + 419 a[6] a[7] + 5921 a[4] a[8] +
419 a[6] a[8] - 419 (a[4] + a[5]) a[9]) -
3 a[2] (357646163 a[4] + 25308857 a[6] +
217313 (5921 a[7] + 419 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (419 a[
3] (153431 a[4] + 153431 a[5] + 651525 (a[7] + a[8])) +
a[1] (908464951 a[5] - 64287589 a[6] +
651525 (5921 a[8] - 419 a[9])) +
489336 (-5921 a[5] a[7] + 419 a[6] a[7] + 5921 a[4] a[8] +
419 a[6] a[8] - 419 (a[4] + a[5]) a[9]) -
a[2] (908464951 a[4] + 64287589 a[6] +
651525 (5921 a[7] + 419 a[9])))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[6] ((3896 + 7527 a[2]) a[7] + (3896 - 7527 a[1]) a[8]) +
a[5] (-(1948 + 7527 a[3]) a[7] + (-3896 + 7527 a[1]) a[9]) +
a[4] ((1948 + 7527 a[3]) a[8] - (3896 + 7527 a[2]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (-2 a[3] (a[7] + a[5] a[7] + a[8] - a[4] a[8]) +
a[2] ((1 + 2 a[6]) a[7] - 2 (-1 + a[4]) a[9]) +
a[1] (-(1 + 2 a[6]) a[8] + 2 (1 + a[5]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >= 0 && (
2 a[3] (a[4] + a[5]) + a[1] (a[5] - 2 a[6]) -
a[2] (a[4] + 2 a[6]))/(
a[3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
2 && (-1948 a[5] a[7] + 3896 a[6] a[7] + 1948 a[4] a[8] +
3896 a[6] a[8] + 419 a[1] a[6] a[8] +
a[1] (45 a[5] - 90 a[6] + 3928 a[8]) +
a[3] (a[5] (90 + 419 a[7]) + a[4] (90 - 419 a[8]) +
7856 (a[7] + a[8])) - (3896 (a[4] + a[5]) +
a[1] (7856 + 419 a[5])) a[9] +
a[2] (-a[6] (90 + 419 a[7]) - 3928 (a[7] + 2 a[9]) +
a[4] (-45 + 419 a[9])))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[6] (7856 (-1 + a[2]) a[7] + (3567 - 7856 a[1]) a[8]) +
a[5] (3928 (1 - 2 a[3]) a[7] + (-3567 + 7856 a[1]) a[9]) +
3928 a[4] ((-1 + 2 a[3]) a[8] - 2 (-1 + a[2]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] ((7856 - 3567 a[5]) a[7] + 3567 (-1 + a[4]) a[8]) +
a[2] ((-3928 + 3567 a[6]) a[7] - 3567 (-1 + a[4]) a[9]) +
a[1] ((3928 - 3567 a[6]) a[8] + (-7856 + 3567 a[5]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >= 0 &&
7856 + (a[3] (-7856 a[4] + 3567 a[5]) +
a[2] (3928 a[4] - 3567 a[6]) - 3928 a[1] (a[5] - 2 a[6]))/(
a[3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] (a[5] (160515 - 1645832 a[7]) -
3928 (7856 a[7] - 3567 a[8]) + 3928 a[4] (-90 + 419 a[8])) +
a[2] (a[6] (-160515 + 1645832 a[7]) +
3928 (3928 a[7] - 3567 a[9]) -
3928 a[4] (-45 + 419 a[9])) +
4 (487 (3928 a[5] a[7] - 7856 a[6] a[7] + 3567 a[6] a[8] -
3928 a[4] (a[8] - 2 a[9]) - 3567 a[5] a[9]) +
982 a[1] (a[6] (90 - 419 a[8]) - 3928 (a[8] - 2 a[9]) +
a[5] (-45 + 419 a[9]))))/(a[3] (-a[5] a[7] + a[4] a[8]) +
a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[6] (-(11333 + 90 a[2]) a[7] + 90 (1 + a[1]) a[8]) -
45 a[5] ((1 - 2 a[3]) a[7] + 2 (1 + a[1]) a[9]) +
a[4] (45 (1 - 2 a[3]) a[8] + (11333 + 90 a[2]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (a[3] ((11333 - 90 a[5]) a[7] + 90 (-1 + a[4]) a[8]) +
45 a[2] ((1 + 2 a[6]) a[7] - 2 (-1 + a[4]) a[9]) +
a[1] (-45 (1 + 2 a[6]) a[8] + (-11333 + 90 a[5]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >= 0 && 11333 + (
a[3] (-11333 a[4] + 90 a[5]) - 45 a[2] (a[4] + 2 a[6]) +
a[1] (45 a[5] + 11333 a[6]))/(
a[3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (87660 a[5] a[7] + 22076684 a[6] a[7] - 87660 a[4] a[8] -
175320 a[6] a[8] - 18855 a[1] a[6] a[8] -
45 a[1] (45 a[5] + 11333 a[6] + 3928 a[8]) +
a[3] (-45 a[5] (90 + 419 a[7]) + 3928 (11333 a[7] - 90 a[8]) +
45 a[4] (11333 + 419 a[8])) + (-45332 (982 a[1] +
487 a[4]) + 45 (3896 + 419 a[1]) a[5]) a[9] +
45 a[2] (a[6] (90 + 419 a[7]) + a[4] (45 - 419 a[9]) +
3928 (a[7] + 2 a[9])))/(a[3] (a[5] a[7] - a[4] a[8]) +
a[2] (-a[6] a[7] + a[4] a[9]) +
a[1] (a[6] a[8] - a[5] a[9])) >=
0 && (-419 a[6] (a[7] - a[2] a[7] + a[8] + a[1] a[8]) +
a[5] ((5921 - 419 a[3]) a[7] + 419 (1 + a[1]) a[9]) +
a[4] ((-5921 + 419 a[3]) a[8] - 419 (-1 + a[2]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (419 a[3] (a[7] + a[5] a[7] + a[8] - a[4] a[8]) +
a[2] (-(5921 + 419 a[6]) a[7] + 419 (-1 + a[4]) a[9]) +
a[1] ((5921 + 419 a[6]) a[8] - 419 (1 + a[5]) a[9]))/(a[
3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >= 0 && 419 + (-419 a[3] (a[4] + a[5]) + a[2] (5921 a[4] + 419 a[6]) + a[1] (-5921 a[5] + 419 a[6]))/(
a[3] (-a[5] a[7] + a[4] a[8]) + a[2] (a[6] a[7] - a[4] a[9]) +
a[1] (-a[6] a[8] + a[5] a[9])) >=
0 && (-11534108 a[5] a[7] + 816212 a[6] a[7] +
11534108 a[4] a[8] + 816212 a[6] a[8] +
2480899 a[1] a[6] a[8] +
a[1] (266445 a[5] - 18855 a[6] + 23257688 a[8]) -
419 a[3] (-a[5] (45 + 5921 a[7]) - 3928 (a[7] + a[8]) +
a[4] (-45 + 5921 a[8])) -
419 (1948 (a[4] + a[5]) + a[1] (3928 + 5921 a[5])) a[9] +
a[2] (-419 a[6] (45 + 5921 a[7]) +
5921 a[4] (-45 + 419 a[9]) -
3928 (5921 a[7] + 419 a[9])))/(a[
3] (a[5] a[7] - a[4] a[8]) + a[2] (-a[6] a[7] + a[4] a[9]) +
a[1] (a[6] a[8] - a[5] a[9])) >= 0;
vars2 = a /@ Range[9];
cons2 = And @@ Thread[-8 <= vars2 <= 8];
(soln3 = NMinimize[{Total[List @@ expr2[[All, 1]]], expr2 && cons2},
vars2, Reals]) // Quiet // AbsoluteTiming
expr2 && cons2 /. soln3[[2]]
(soln4 = NMaximize[{Total[List @@ expr2[[All, 1]]], expr2 && cons2},
vars2, Reals]) // Quiet // AbsoluteTiming
expr2 && cons2 /. soln4[[2]]

• Hard to start without (1) actual input code and (2) some indication of what has already been tried. – Daniel Lichtblau Oct 17 '17 at 15:37
• Basically I have a singular square matrix U of size n=3, which is linear combination of m variables (maybe m=4) . For ex :- U = {{ a[1]-a[2] , a[2]+2 a[3] ,a[1]-a[2]+a[4] } , { ... } , { ... } } The elements of group inverse of U is found to be nonlinear. 1. I want to find such values of a[i]'s, such that every element of group inverse of U is non negative 2. There is another matrix V which is derived from U but is again non linear, and I want all elements of V also to be non negative Condition 1 gives 9 inequalities and condition 2 gives another 9 inequalities. My aim is to find a[i]'s. – Pushpendu Ghosh Oct 17 '17 at 17:43
• What I did so far is, I create matrix 'cond' which is a 1d array containing all these 18 conditions. I randomly generate possible values of a[i]'s using RandomReal[{-5, 5}, 4]; I substitute in cond, and use AllTrue[cond,TrueQ] to check whether all are true – Pushpendu Ghosh Oct 17 '17 at 17:50
• Here as inequalities are more this method to do search randomly seems inefficient. It would be great if you could suggest me any iteration based optimization technique which will be best in this case. – Pushpendu Ghosh Oct 17 '17 at 17:51

Have you tried FindInstance?

expr = (465 a1 - 155 a2 + 1639 (-3 a3 + a4))/(-a2 a3 + a1 a4) >=
0 && (129 a1 - 43 a2 + 1529 (-3 a3 + a4))/(-a2 a3 + a1 a4) >=
0 && (525 a1 - 175 a2 + 1727 (-3 a3 + a4))/(-a2 a3 + a1 a4) >=
0 && (2325 a1 + 14570 a2 + 1639 (15 a3 + 94 a4))/(a2 a3 - a1 a4) >=
0 && (645 a1 + 4042 a2 - 1529 (15 a3 + 94 a4))/(a2 a3 - a1 a4) >=
0 && (2625 a1 + 16450 a2 - 1727 (15 a3 + 94 a4))/(a2 a3 - a1 a4) >=
0 && (17205 a1 + 4495 a2 - 1639 (111 a3 + 29 a4))/(-a2 a3 + a1 a4) >=
0 && (4773 a1 + 1247 a2 - 1529 (111 a3 + 29 a4))/(-a2 a3 + a1 a4) >= 0;

vars = Variables[Level[expr, {-1}]];

cons = And @@ Thread[-5 <= vars <= 5];

soln = FindInstance[expr && cons, vars, Reals] // AbsoluteTiming

(* {16.1054, {{a1 -> 1, a2 -> -1, a3 -> 0, a4 -> 5/128}}} *)

expr && cons /. soln[[2, 1]]

(* True *)


EDIT: Since all of the terms of the expression are positive you can minimize their constrained sum using NMinimize

(soln = NMinimize[{Total[List @@ expr[[All, 1]]], expr && cons}, vars,
Reals]) // AbsoluteTiming

(* {0.889857, {51083., {a1 -> 5., a2 -> 5., a3 -> 0.771815, a4 -> -0.671466}}} *)

expr && cons /. soln[[2]]

(* True *)


This took less than a second.

EDIT 2: Or for another feasible solution, use NMaximize

(soln2 = NMaximize[{Total[List @@ expr[[All, 1]]], expr && cons}, vars,
Reals]) // AbsoluteTiming

(* {0.674628, {6.54203*10^6, {a1 -> -0.369107, a2 -> 1.52646, a3 -> -0.00488266,
a4 -> 0.0398728}}} *)

expr && cons /. soln2[[2]]

(* True *)


EDIT 3: With the full set of 18 inequalities

expr2 = (31 a[1] + 31 a[2] - 258 (a[3] + a[4]))/(-a[2] a[3] +
a[1] a[4]) >=
0 && (121 a[1] + 121 a[2] - 340 (a[3] + a[4]))/(-a[2] a[3] +
a[1] a[4]) >=
0 && (208 a[1] + 208 a[2] - 1207 (a[3] + a[4]))/(-a[2] a[3] +
a[1] a[4]) >=
0 && (341 a[1] - 6200 a[2] - 2838 a[3] + 51600 a[4])/(-a[2] a[3] +
a[1] a[4]) >=
0 && (1331 a[1] - 24200 a[2] - 3740 a[3] +
68000 a[4])/(-a[2] a[3] + a[1] a[4]) >=
0 && (2288 a[1] - 41600 a[2] +
1207 (-11 a[3] + 200 a[4]))/(-a[2] a[3] + a[1] a[4]) >=
0 && (3503 a[1] - 3038 a[2] +
258 (-113 a[3] + 98 a[4]))/(-a[2] a[3] + a[1] a[4]) >=
0 && (13673 a[1] - 11858 a[2] +
340 (-113 a[3] + 98 a[4]))/(-a[2] a[3] + a[1] a[4]) >=
0 && (23504 a[1] - 20384 a[2] -
1207 (113 a[3] - 98 a[4]))/(-a[2] a[3] + a[1] a[4]) >=
0 && ((204 - 109 a[2]) a[3] + (204 + 109 a[1]) a[4])/(-a[2] a[3] +
a[1] a[4]) >= 0 && (a[1] + a[2])/(a[2] a[3] - a[1] a[4]) >=
1 && (a[2] (11 + 98 a[3]) + a[1] (11 - 98 a[4]) -
204 (a[3] + a[4]))/(a[2] a[3] - a[1] a[4]) >=
0 && (-11 (2 + a[2]) a[3] + (400 + 11 a[1]) a[4])/(a[2] a[3] -
a[1] a[4]) >= 0 &&
200 + (11 a[1] - 200 a[2])/(a[2] a[3] - a[1] a[4]) >=
0 && (-2244 a[3] + 22 a[2] (-100 + 49 a[3]) +
11 a[1] (11 - 98 a[4]) + 40800 a[4])/(a[2] a[3] - a[1] a[4]) >=
0 && ((113 - 49 a[2]) a[3] + 49 (-2 + a[1]) a[4])/(-a[2] a[3] +
a[1] a[4]) >= 0 &&
98 + (113 a[1] - 98 a[2])/(a[2] a[3] - a[1] a[4]) >=
0 && (113 a[1] (11 - 98 a[4]) +
2 (-11526 a[3] + 49 a[2] (-11 + 113 a[3]) + 9996 a[4]))/(a[
2] a[3] - a[1] a[4]) >= 0;

vars2 = a /@ Range[4];

cons2 = And @@ Thread[-5 <= vars2 <= 5];

(soln3 = NMinimize[{Total[List @@ expr2[[All, 1]]], expr2 && cons2},
vars2, Reals]) // Quiet // AbsoluteTiming

(* {6.23783, {64035.4, {a[1] -> 5., a[2] -> 4.75051, a[3] -> 2.77941,
a[4] -> 0.690623}}} *)

expr2 && cons2 /. soln3[[2]]

(* True *)

(soln4 = NMaximize[{Total[List @@ expr2[[All, 1]]], expr2 && cons2},
vars2, Reals]) // Quiet // AbsoluteTiming

(* {5.99586, {186403., {a[1] -> 1.78057*10^-9, a[2] -> 2.08163,
a[3] -> 1., a[4] -> 0.112245}}} *)

expr2 && cons2 /. soln4[[2]]

(* True *)

• Sir, maybe 8 inequations gives result, but I have 18 inequations, Moreover I tried your piece of code using all 18 inequalities and it is running since 5 minutes. You can get the typed conditions, from the code I added recently. – Pushpendu Ghosh Oct 17 '17 at 19:28
• Thanks a lot sir, its working really great in this case. I will implement this method in bigger problems and I hope this works so nice. I again thank you a lot. – Pushpendu Ghosh Oct 17 '17 at 19:52
• Sir, In bigger problem, NMinimize is throwing error that : "The initial region specified may not contain any feasible points. Changing the initial region or specifying explicit initial points may provide a better solution." I guess it is not able to get a feasible initial condition maybe it is encountering 1/0 form. What can be done in that case – Pushpendu Ghosh Oct 17 '17 at 21:25
• @PushpenduGhosh - I just used Quiet to silence the error messages and verified the solution. As long as the solution verifies, then transient problems getting there are not a concern. Even if the NMinimize solution were to fail to verify, as long as the other (NMaximize) approach provides a feasible solution, then you have met the minimum stated requirement of finding a feasible solution. – Bob Hanlon Oct 17 '17 at 21:43
• I uploaded the code (which I created using the code template given by you, to solve a bigger problem), but neither of NMinimize nor Nmaximize is giving feasible solution. – Pushpendu Ghosh Oct 17 '17 at 22:06