0
$\begingroup$

I am trying to define an AI domain in which I need to define the probability $p_i,$ of a variable $v_i$ having a value 1 or 0. $p_i$ may range anywhere from 0 to 100%. In my problem i goes from 1 to 83. $p_i$ has the following restriction:

I want on average for 47 of the variables $v_i$ to take value 1, so

$\sum_{i=1}^{83} p_i=47.$

And they need to have an extra characteristic due to my domain which is obeying this formula:

$\sum_{i=1}^{82}\dfrac{\sum_{j=i+1}^{83}\frac{p_i(1-p_j)}{p_i(1-p_j)+(1-p_i)p_j}}{83\cdot82/2}=80\%,$

Any thoughts on how do I solve this?

(For reference, here is the original link.)

EDIT (from comments):

I am trying to define an AI domain, those are probabilities (p_i) of several variables being 1 or 0. But I have to have more 1's on smaller i's and more 0's on larger ones. On average, I should have 47 1's, meaning that the sum of their probability should be 47.

I will actually be varying the values of the 80% and the 47, but I thought it would be easier to post it like that.

  • 0
    I changed it!!!2012-08-15

1 Answers 1

2

Since you have $81$ more variables than equations, typically there will be $81$ degrees of freedom in the solutions. I doubt that you'll get a closed-form solution. One approximate numerical solution I found was $\matrix{p[1]=0.9936010879\cr p[2]=0.9949598390\cr p[3]=0.9988145696\cr p[4]=0.9970419766\cr p[5]=0.9967779997\cr p[6]=0.9973747621\cr p[7]=0.9979315968\cr p[8]=0.9982231336\cr p[9]=0.9981696879\cr p[10]=0.9922669675\cr p[11]=0.9917904561\cr p[12]=0.9838146901\cr p[13]=0.9848249116\cr p[14]=0.9917898198\cr p[15]=0.9767770505\cr p[16]=0.9598615358\cr p[17]=0.9426460162\cr p[18]=0.9253550297\cr p[19]=0.9080518577\cr p[20]=0.8907556300\cr p[21]=0.8734717325\cr p[22]=0.8562009141\cr p[23]=0.8389423521\cr p[24]=0.8216947619\cr p[25]=0.8044568099\cr p[26]=0.7872272601\cr p[27]=0.7700050176\cr p[28]=0.7527891303\cr p[29]=0.7355787758\cr p[30]=0.7183732445\cr p[31]=0.7011719221\cr p[32]=0.6839742739\cr p[33]=0.6667798318\cr p[34]=0.6495881825\cr p[35]=0.6323989575\cr p[36]=0.6152118254\cr p[37]=0.5980264849\cr p[38]=0.5808426580\cr p[39]=0.5636600855\cr p[40]=0.5464785218\cr p[41]=0.5292977308\cr p[42]=0.5121174814\cr p[43]=0.4949375437\cr p[44]=0.4777576850\cr p[45]=0.4605776649\cr p[46]=0.4433972314\cr p[47]=0.4262161150\cr p[48]=0.4090340228\cr p[49]=0.3918506313\cr p[50]=0.3746655777\cr p[51]=0.3574784488\cr p[52]=0.3402887674\cr p[53]=0.3230959752\cr p[54]=0.3058994099\cr p[55]=0.2886982750\cr p[56]=0.2714916005\cr p[57]=0.2542781875\cr p[58]=0.2370565322\cr p[59]=0.2198247182\cr p[60]=0.2025802589\cr p[61]=0.1853198636\cr p[62]=0.1680390765\cr p[63]=0.1507317014\cr p[64]=0.1333888453\cr p[65]=0.1159972422\cr p[66]=0.0985361229\cr p[67]=0.0809708670\cr p[68]=0.1956764307\cr p[69]=0.3485961405\cr p[70]=0.4325779559\cr p[71]=0.4153325481\cr p[72]=0.3980828793\cr p[73]=0.3808283238\cr p[74]=0.3635681850\cr p[75]=0.3463016797\cr p[76]=0.3290279190\cr p[77]=0.3117458849\cr p[78]=0.2944544007\cr p[79]=0.2771520935\cr p[80]=0.2598373465\cr p[81]=0.2425082357\cr p[82]=0.2251624475\cr p[83]=0.2079185926\cr }$

EDIT: Here is one way to get a solution (probably not the same one) in Maple:

e1:= add(add(p[i]*(1-p[j])/(p[i]*(1-p[j])+(1-p[i])*p[j])/(83*82/2),       j=i+1..83),i=1..83) - 8/10: e2:= add(p[i],i=1..83)-47: P0:= Optimization[Minimize](e1^2,{e2=0},seq(p[i]=0.001 .. 0.999, i=1..83))[2]; X0:= eval(,P0); # this is a pretty good solution, but can be improved M:= Matrix([eval([seq(diff(e1,p[i]),i=1..83)],P0), [seq(1,i=1..83)]]); E:= eval(,P0); X1:= X0 - LinearAlgebra[MatrixInverse](M).E; seq(p[i]=X1[i],i=1..83); 
  • 0
    Great, thanks ;)2012-08-15