11-27-2022, 09:18 PM

HP49-50G LP for SIMPLEX Max Min Pivot Algorithm

New Version 14b

Multiple, Unbounded & Unfeasible Solutions.

I VERSIONS

II HOW TO USE

I VERSIONS

Version 4

Bugs corrected.

Fully automaticized version

Almost no limitation, except storage capacity of the calculator.

Version 5

Corrections, in particular for output and stacks levels.

Better handling of multiple solutions (see Notes 6,7 & 8 with example in next post).

Previous version 6m-p

—>GO main program contains now

. all — and only — the local variables

. together with detailed explanations

Still improvement of the final check (linear dependency) & display of the (specific & general/multiple) solutions.

Special cases duly mentioned by a DOERR message; otherwise, DOERR replaced by KILL instruction for more direct, visual information in the stack level 1.

Version 6r

Addition of the definition xia - xib = xi to STEPS variable when xi is a Free variable (>=0 or <0).

Version 6s

Inclusion of explanation xia - xib = xi to SLACK.beta variable when xi is a Free variable (>=0 or <0).

Version 7e

Multiple solutions checking improved (extreme directions finding however still not OK).

Version 8a

Multiple solutions checking finished (with linear combinations of vectors ).

Different solution appear now, under menu 1st page, as SOL S.1-N S.LIN d.LIN.

Version 8b

Even if all your xi are or must be >= 0, you can force to check the possible (existing) multiple "solutiond" when "accepting" to have some xi<0 — but only in relation with the vectors linear depency.

Version 8e

Bug correction in 'CHECK.lin.comb' for the Input Matrix

when m+1 >= n

(m+1: # of rows; n: # of variables).

Version 8g

- Visual output corrected for Multiple Solutions with addition of 2 small subprograms —>xP & dµ.i.

- Error corrected in program CHECK.2SOL regarding column choice when at final dictionary table we get one or more zeroes at bottom row (heading label of the corresponding column having to be a xi variable in order to procede to one more special "pivoting" step), with adaptation also of program —>SOL.

- In OPTION subprogram, slight change in question 3 formulation showing its link with question 2.

- A control HALT command was unduly forgotten in subprogram CHECK.2SOL of Version 8e.

Version 9

- Bugs corrected for linear dependencies.

- Loop added in case of wrong "choice" in column/row

when supplementary step executed for zero value in last, final Matrix row relative to the objective fonction.

- Output improved.

Version 9d

Slight, "cosmetical improvements" in the possible, visual outputs.

Version 10d

Large changes for the Min problem solution.

Version 11

Bugs fixed for the Min problem.

Cosmetical improvements of the explanations in —>GO.

Version 12

- In some very special cases, the program could be sometimes "stuck" at the end and chose the wrong row, returning then the second solution — but possibly an unfeasible one.

A special "artificial" test was duly included in subprogram CHECK.2SOL to fix up that issue.

- The NOTE Var was changed : explanations now only regarding the "pivoting" (outside the program) & no more explanations relative to roundings.

- Lines of explanations in —>PIVOT¦&COL.ROW subprogram suppressed for speed purpose.

Version 13d

Handling of unfeasible problem (when sign of found xi ≠ sign of constraint on xi).

Version 14

- Linear Combination of xi in prior versions supposed all xi to be >= 0 (default case), or free.

Now, in the linear combination of the xi, besides the free case of xi being free, the default case respects the real signs of the xi.

- Programs variables S.1N, S.LIN & d.LIN, when called, give more details about the solution (multiple/unbounded/unfeasible solution)

Version 14b

Slight change in output for RESULT¦Ci.rows in case of unfeasible problem.

II HOW TO USE

Very first step

Copy the annexed file ending by .hp

(previously ending by .DOC into your calculator HP50G or EMU48 ; despite its previous ending with ".DOC", note that it was not at all a Word Doc or a file containing explanations; it was a HP50G usual directory containing HP50G programs, variables and other directories.)

Save that SIMPLEX.hp file/Directory (previously called SIMPLEX. DOC) on your HP50G with just the name SIMPLEX.

As in the previous versions 4, 5, 6,..., 12, nothing here to prepare or think over and check if it is Simplex compatible; the required transformations (added lines/columns/slack variables) are done internally by the program (and explained, for the added variables, under variable SLACK.beta, at first menu page, as well for STEPS variable, equally to be found at first menu page).

Then just enter your "problem Matrix" at stack level 1 as a unique argument

- with one row per inequality (inéquation) or equality (equation) (equalities/equations are allowed) — almost "normally" as they appear in a text book — and Z-objective function in last row;

- for variables restrictions, enter them as normal row inequations/equations; free variables, when you don't know the sign of xi, are also accepted.

See next post for example of Input

and further explanations.

Besides "normal" solution, output includes automatically possible inconsistencies and, if it exists, a "proposal" for a more general, multiple solution formulation.

After launching the main program —>GO, answer further, at 1st question, 1 for a Max, 0 for a Min, & confirm your choice pressing ENTER.

Press 4 times ENTER at the next four questions/prompts and wait for the results.

New Version 14b

Multiple, Unbounded & Unfeasible Solutions.

I VERSIONS

II HOW TO USE

I VERSIONS

Version 4

Bugs corrected.

Fully automaticized version

Almost no limitation, except storage capacity of the calculator.

Version 5

Corrections, in particular for output and stacks levels.

Better handling of multiple solutions (see Notes 6,7 & 8 with example in next post).

Previous version 6m-p

—>GO main program contains now

. all — and only — the local variables

. together with detailed explanations

Still improvement of the final check (linear dependency) & display of the (specific & general/multiple) solutions.

Special cases duly mentioned by a DOERR message; otherwise, DOERR replaced by KILL instruction for more direct, visual information in the stack level 1.

Version 6r

Addition of the definition xia - xib = xi to STEPS variable when xi is a Free variable (>=0 or <0).

Version 6s

Inclusion of explanation xia - xib = xi to SLACK.beta variable when xi is a Free variable (>=0 or <0).

Version 7e

Multiple solutions checking improved (extreme directions finding however still not OK).

Version 8a

Multiple solutions checking finished (with linear combinations of vectors ).

Different solution appear now, under menu 1st page, as SOL S.1-N S.LIN d.LIN.

Version 8b

Even if all your xi are or must be >= 0, you can force to check the possible (existing) multiple "solutiond" when "accepting" to have some xi<0 — but only in relation with the vectors linear depency.

Version 8e

Bug correction in 'CHECK.lin.comb' for the Input Matrix

when m+1 >= n

(m+1: # of rows; n: # of variables).

Version 8g

- Visual output corrected for Multiple Solutions with addition of 2 small subprograms —>xP & dµ.i.

- Error corrected in program CHECK.2SOL regarding column choice when at final dictionary table we get one or more zeroes at bottom row (heading label of the corresponding column having to be a xi variable in order to procede to one more special "pivoting" step), with adaptation also of program —>SOL.

- In OPTION subprogram, slight change in question 3 formulation showing its link with question 2.

- A control HALT command was unduly forgotten in subprogram CHECK.2SOL of Version 8e.

Version 9

- Bugs corrected for linear dependencies.

- Loop added in case of wrong "choice" in column/row

when supplementary step executed for zero value in last, final Matrix row relative to the objective fonction.

- Output improved.

Version 9d

Slight, "cosmetical improvements" in the possible, visual outputs.

Version 10d

Large changes for the Min problem solution.

Version 11

Bugs fixed for the Min problem.

Cosmetical improvements of the explanations in —>GO.

Version 12

- In some very special cases, the program could be sometimes "stuck" at the end and chose the wrong row, returning then the second solution — but possibly an unfeasible one.

A special "artificial" test was duly included in subprogram CHECK.2SOL to fix up that issue.

- The NOTE Var was changed : explanations now only regarding the "pivoting" (outside the program) & no more explanations relative to roundings.

- Lines of explanations in —>PIVOT¦&COL.ROW subprogram suppressed for speed purpose.

Version 13d

Handling of unfeasible problem (when sign of found xi ≠ sign of constraint on xi).

Version 14

- Linear Combination of xi in prior versions supposed all xi to be >= 0 (default case), or free.

Now, in the linear combination of the xi, besides the free case of xi being free, the default case respects the real signs of the xi.

- Programs variables S.1N, S.LIN & d.LIN, when called, give more details about the solution (multiple/unbounded/unfeasible solution)

Version 14b

Slight change in output for RESULT¦Ci.rows in case of unfeasible problem.

II HOW TO USE

Very first step

Copy the annexed file ending by .hp

(previously ending by .DOC into your calculator HP50G or EMU48 ; despite its previous ending with ".DOC", note that it was not at all a Word Doc or a file containing explanations; it was a HP50G usual directory containing HP50G programs, variables and other directories.)

Save that SIMPLEX.hp file/Directory (previously called SIMPLEX. DOC) on your HP50G with just the name SIMPLEX.

As in the previous versions 4, 5, 6,..., 12, nothing here to prepare or think over and check if it is Simplex compatible; the required transformations (added lines/columns/slack variables) are done internally by the program (and explained, for the added variables, under variable SLACK.beta, at first menu page, as well for STEPS variable, equally to be found at first menu page).

Then just enter your "problem Matrix" at stack level 1 as a unique argument

- with one row per inequality (inéquation) or equality (equation) (equalities/equations are allowed) — almost "normally" as they appear in a text book — and Z-objective function in last row;

- for variables restrictions, enter them as normal row inequations/equations; free variables, when you don't know the sign of xi, are also accepted.

See next post for example of Input

and further explanations.

Besides "normal" solution, output includes automatically possible inconsistencies and, if it exists, a "proposal" for a more general, multiple solution formulation.

After launching the main program —>GO, answer further, at 1st question, 1 for a Max, 0 for a Min, & confirm your choice pressing ENTER.

Press 4 times ENTER at the next four questions/prompts and wait for the results.