This project is in development, this is an alpha version.
This method is inspired by Data Envelopment Analysis, and it intended to be applied in Linear Programming for a Maximization setup where two variable objective function and high number of constraints.
maximize Z, which is the objective function
where Z = C * X AND A * X ≤ b
where C, X, and b are vectors; and A is a Matrix
e.g. max Z;
C1* X1 + C2* X2 = Z
A1* X1 + A2* X2 ≤ b1
A3* X1 + A4* X2 ≤ b2
A5* X1 + A5* X2 ≤ b3
INPUT
C = { C1, C2 } = L1
b = { b1, b2, b3 } = L2
A = [ A1 A2
A3 A4
A5 A6 ] = [A]
OUTPUT
X = [ X1 X2 ] = LE
Z = Z
This code is written for a TI83 calculator
Dim(L1)→N
Dim(L2)→M
M→Dim(L6)
M→Dim(LA)
M→Dim(L8)
{M,N,}→Dim[B]
FOR(C,1,M,1)
FOR(D,1,N1,)
[A](C,D)/L2(C)→[B](C,D)
END
END
0→X
0→Y
0→Z
FOR(C,1,M,1)
FOR(D,1,N,1)
([B](C,D)-L1(D))^2+X→X
[B](C,D)^2+Y→Y
L1(D)^2+Z→Z
END
√(X)→L6(C)
0→X
√(Y)→LA(C)
0→Y
√(Z)→Z
END
FOR(C,1,M,1)
(LA(C)^2-L6(C)^2-Z^2)/(-2*L6(C)*Z)→L8(C)
L6(C)*L8(C)→L9(C)
COS^-1(L8(C))→L8(C)
END
0→Dim(LB)
N→Dim(LB)
0→Dim(L7)
0→X
0→Dim(LF)
0→Dim(LE)
DISP"CALCULATING SMALLEST PROJECTED DISTANCE"
FOR(C,1,M,1)
IF L9(C)=MIN(L9)
THEN
X+1→X
X→Dim(LF)
X→Dim(LE)
C→LF(X)
L8(C)→LE(X)
END
END
DISP"CALCULATING SMALLEST ANGLE FOR SMALLEST PROJECTED DISTANCE"
FOR (C,1,X,1)
IF LE(C)
THEN
LF(C)→K
END
END
0→Dim(LB)
0→X
0→Y
DISP"VERIFY BOUNDARIES FORMED BY FIRST CONSTRAINT REFERENCE"
FOR (C,1,M,1)
IF C ≠ K
THEN
FOR (D,1,N,1)
IF [B](C,D)<[B](K,D)
THEN
X+1→X
END
IF X=N
THEN
Y+1→Y
Y→Dim(LB)
C→LB(Y)
END
END
END
END
0→S
IF Dim(LB)=(M-1)
THEN
1→S
END
DISP"MAPPING OF BACK-UP CONSTRAINTS"
0→X
0→Y
[B](K,1)→[B](M+1,1)
0→[B](M+1,2)
0→[B](M+2,1)
[B](K,2)→[B](M+2,2)
M→T
FOR(C,1,2,1)
FOR(D,1,N,1)
([B](C+T,D)-L1(D))^2+X→X
[B](C+T,D)+Y→Y
END
√(X)→L6(C+T)
0→X
√(Y)→LA(C+T)
0→Y
END
O→Q
2→Dim(LF)
FOR(C,1,2,1)
FOR(D,1,N,1)
([B](K,D)-[B]((C+T),D))^2+Q→Q
END
√(Q)→LF(C)
0→Q
END
FOR(C,1,2,1)
(LF(C)^2-L6(C+T)^2-L6(K)^2)/(-2*L6(C+T)*L6(K))→V
COS^-1(V)→V
(LA(C+T)^2-Z^2-L6(C+T)^2)/(-2*Z*L6(C+T))→W
COS^-1(W)→W
IF(L8(K)+W=V
THEN
C+T→L
END
END
DISP"BACK-UP CONSTRAINTS AVAILABLE"
IF S=1
THEN
DISP"FIRST CONSTRAINT REFERENCE PROVIDES BOUNDS FOR SOLUTION, BACK-UP CONSTRAINTS USED TO DETERMINE SOLUTION"
{N,N}→Dim[C]
FOR(D,1,2,1)
[B](K,D)→[C](1,D)
[B](L,D)→[C](2,D)
END
0→J
N→Dim(L6)
[C]^-1→[C]
FOR(C,1,2,1)
FOR(D,1,2,1)
[C](C,D)+J→J
END
J→L6(C)
0→J
END
0→Z
FOR(C,1,N,1)
L1(C)*L6(C)+Z→Z
END
DISP"OPTIMAL QUANTITIES FOR EACH VARIABLE ARE"
DISP L6
DISP"OPTIMAL SOLUTION IS"
DISP Z
END
DISP"BEGIN REPLACING PRIMARY CONSTRAINTS IN A NEW MATRIX AND ERASING SECONDARY CONSTRAINTS"
Dim[B]→Dim[D]
Dim[LB]→Y
I→0
FOR(C,1,T+2,1)
X→0
FOR(E,1,Y,1)
IF C ≠ LB(E)
THEN
X+1→X
IF X=Y
THEN
I+1→I
I→Dim LC
C→LC(I)
IF C=K
THEN
I→K
END
IF C=L
THEN
I→L
END
END
END
END
END
T+2-Y→T
FOR(C,1,T,1)
FOR(D,1,N,1)
[B](LC(C),D)→[D](C,D)
END
END
{T,N}→[D]
DISP"RECACULATING DISTANCES"
0→X
0→Y
T→Dim(L6)
T→Dim(LA)
T→Dim(L8)
FOR(C,1,T,1)
FOR(D,1,N,1)
([D](C,D)-L1(D))^2+X→X
[B](C,D)^2+Y→Y
END
√(X)→L6(C)
0→X
√(Y)→LA(C)
0→Y
END
FOR(C,1,M,1)
(LA(C)^2-LC(C)^2-Z^2)/(-2*L6(C)*Z)→L8(C)
L6(C)*L8(C)→L9(C)
COS^-1(L8(C))→L8(C)
END
0→X
DISP"BEGIN LOCATING NEXT REFERENCE CONSTRAINT"
T→Dim(LK)
0→Dim(L4)
FOR(C,1,T,1)
FOR(D,1,N,1)
([D](C,D)-[D](K,D))^2+X→X
END
√(X)→LK(C)
END
0→X
FOR(C,1,T,1)
IF C ≠ K
THEN
FOR(D,1,N,1)
(LK(C)^2-LA(K)^2-LA(C)^2)/(-2*LA(K)*LA(C))→V
COS^-1(V)→V
END
IF L8(K)+L8(C)=V
THEN
X+1→X
X→Dim(L4)
C→L4(X)
END
END
END
X→Dim(L7)
FOR (C,1,X,1)
SIN^-1((L9(L4(C))-L9(K))/(LK(L4(C))))→L7(C)
END
FOR(C,1,X,1)
IF L7(C)=MIN L7
THEN
L4(C)→J
END
END
END
{N,N}→Dim[C]
FOR(D,1,2,1)
[D](K,D)→[C](1,D)
[D](J,D)→[C](2,D)
END
0→E
N→Dim(L6)
[C]^-1→[C]
FOR(C,1,2,1)
FOR(D,1,2,1)
[C](C,D)+J→J
END
J→L6(C)
0→J
END
0→Z
FOR(C,1,N,1)
L1(C)*L6(C)+Z→Z
END
DISP"OPTIMAL QUANTITIES FOR EACH VARIABLE ARE"
DISP L6
DISP"OPTIMAL SOLUTION IS"
DISP Z