# how to implement parallel integer optimization with petsc?

Matthew Knepley knepley at mcs.anl.gov
Sat Feb 4 13:27:02 CST 2006

Tomasz Jankowski <tomjan at jay.au.poznan.pl> writes:

Unfortunately, AMPL does a lot of processing. It would be a big
job to translate this to PETSc.

Matt

>>       PETSc basically offers parallel linear algebra and nonlinear solvers.
>> If you can phrase the algorithm in linear algebraic terms, then we can probably help.
>
> unfortunetly I can't (sorry I'm not mathematicst) but I can phrase my problem in AMPL language. please look at the two
> files which I have pasted at the end of this email. mate-selection.mod contain optimization model in AMPL. the second
> file mate-selection.dat contain the example data.
>
> Please forgive me my previous email with unclear description of my problem (its because of my english).once again I need
> to assert that I don't expect the full recipe for implementation of my problem with PETSc.
>
> I will realy appreciate if you give some sugesstion.
>
>
> tom
>
> (ps. if AMPL model is not good I provide my algorithm in algebraic terms)
>
> ---------mate-selection.mod----------------
> set BULLS;
> set COWS;
>
> param ebv {COWS,BULLS} >= 0;
> param cost {BULLS} > 0;
> param f {COWS,BULLS} >= 0;
> param l_cows > 0;
> var Pairs {COWS,BULLS} binary;
>
> maximize Total_Ebv:
>     sum {i in COWS, j in BULLS} ebv[i,j] * Pairs[i,j];
>
>     subject to Max_cows {i in COWS}: sum{j in BULLS} Pairs[i,j] = 1;
>     subject to Max_bulls {j in BULLS}: sum{i in COWS} Pairs[i,j] <= 2;
>     subject to F: (sum{i in COWS, j in BULLS} f[i,j] * Pairs[i,j])/l_cows <= 0.03;
>     subject to Cost: sum{ i in COWS, j in BULLS} Pairs[i,j] * cost[j] <=500;
> ---------------------------------------------
>
> -----------------mate-selection.dat---------------------
>
> data;
>
> set BULLS := male0 male1 male2 male3 male4;
> set COWS := female0 female1 female2;
> param ebv:      male0   male1   male2   male3   male4:=
>          female0 290     410     298     400     471
>          female1 901     807     956     653     173
>          female2 185     453     733     316     367
> ;
> param f:        male0   male1   male2   male3   male4:=
>          female0 0.076   0.048   0.068   0.064   0.064
>          female1 0.078   0.057   0.035   0.018   0.014
>          female2 0.068   0.042   0.062   0.076   0.059
> ;
> param           cost:=
>          male0   72
>          male1   544
>          male2   822
>          male3   825
>          male4   127
> ;
> param l_cows := 3;
> end;
>
> --------------------------------------------
>
>
>

--
"Failure has a thousand explanations. Success doesn't need one" -- Sir Alec Guiness