Amat=Transpose[Join[Transpose[Join[DiagonalMatrix[{-1,-1,-1,-1}],DiagonalMatrix[{1,1,1,1}],{{1,1,0,0},{0,0,1,1},{1,1,1,1}}]],Transpose[Join[DiagonalMatrix[{1,1,1,1,1,1,1,1,1,1}],{{0,0,0,0,0,0,0,0,0,0}}]]]];
%//MatrixForm
m=Length@Amat(*řádky*)
n=Length@Amat[[1]](*sloupce*)
czad={1.4,1.2,1.5,1.6};
c={czad,ConstantArray[0,10]}//Flatten
Length@%
b={-50,-50,-50,-100,600,500,700,500,900,900,1600}
Length@%

(*všechny přípustné báze*)
Join[ConstantArray[1,m],ConstantArray[0,n-m]]
bfsAll=Permutations[%];
(*jedna přípustná báze*)
bfs=bfsAll[[12]]

Bind=Position[bfs,1]//Flatten
Nind=Position[bfs,0]//Flatten

Do[
Bmat=Amat[[All,Bind]];
Nmat=Amat[[All,Nind]];
d=Inverse[Bmat].b;
cmod=ConstantArray[0,n];
cmod[[Nind]]=c[[Nind]]-c[[Bind]].Inverse[Bmat].Nmat;
cj=Min[cmod];
If[cj>=0,
reseni=ConstantArray[0,n];
reseni[[Bind]]=d;
Break[]
];
j=Position[cmod,cj]//.{x_}->x(*jde do báze*);
w=Inverse[Bmat].Amat[[All,j]];
zz=Position[w,_?(#>0&)]//Flatten;
yy=Min[((d[[zz]])/(w[[zz]]))];
ii=Position[((d[[zz]])/(w[[zz]])),yy]//.{x_}->x;
i=zz[[ii]](*pryč z báze*);
(*prohozeni baze/nebaze*)
k=Bind[[i]];
Bind[[i]]=j;
Nind[[Position[Nind,j]//.{x_}->x]]=k;
,{it,10}]

reseni

czad.reseni[[1;;4]]

LinearProgramming[{1.4,1.2,1.5,1.6},{
(*podminky ≥ pro minima*)
{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1},
(*podminka = pro Qw*)
{1,1,1,1},
(*podminky ≤ pro maxima*)
{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1},{1,1,0,0},{0,0,1,1}},
{{50,1},{50,1},{50,1},{100,1},{1600,0},{600,-1},{500,-1},{700,-1},{500,-1},{900,-1},{900,-1}}]