restart:with(LinearAlgebra):
A:=Matrix([[-2,5,1],[-3,2,3],[2,1,3]]);
B:=Matrix([[-4,-2,4],[-3,1,4],[3,1,-1]]);
Y:=Vector(3,symbol=y):
X:=Vector(3,symbol=x):
yeq:=seq(add(y[j]*(A[i,j]-A[3,j]),j=1..3),i=1..2);
xeq:=seq(add(x[i]*(B[i,s]-B[i,3]),i=1..3),s=1..2);
xsols:=solve({xeq[1]=0,xeq[2]=0,add(x[i],i=1..3)=1},[x[1],x[2],x[3]]);
assign(xsols);
ysols:=solve({yeq[1]=0,yeq[2]=0,add(y[j],j=1..3)=1},[y[1],y[2],y[3]]);
assign(ysols);
Transpose(X).A.Y; Transpose(X).B.Y;
restart:with(LinearAlgebra):
A:=Matrix([[-1,0,0],[2,1,0],[0,1,1]]);
B:=Matrix([[1,2,2],[1,-1,0],[0,1,2]]);
X:=<x[1],x[2],x[3]>;
Y:=<y[1],y[2],y[3]>;
Cnst:={seq((A.Y)[i]<=p,i=1..3),
seq((Transpose(X).B)[i]<=q,i=1..3),
add(x[i],i=1..3)=1,add(y[i],i=1..3)=1};
with(Optimization);
objective:=expand(Transpose(X).A.Y+Transpose(X).B.Y-p-q);
QPSolve(objective,Cnst,assume=nonnegative,maximize);
QPSolve(objective,Cnst,assume=nonnegative,maximize,
initialpoint=({q=1,p=2}));
NLPSolve(objective,Cnst,assume=nonnegative,maximize);