Opened 4 years ago

Last modified 3 years ago

#20203 new enhancement

LPCleanDictionary - floating-point helper class for interactive simplex method

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-7.2
Component: numerical Keywords:
Cc: zwang, pjxiao Merged in:
Authors: Aedi Wang Reviewers:
Report Upstream: N/A Work issues:
Branch: u/mkoeppe/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method (Commits) Commit: 5cfc380392e8dc48a774b9292ffe40229cd384b9
Dependencies: #20874 Stopgaps:

Description

This module provides a "clean" dictionary view on a dictionary with floating-point numbers. Cleaning means to change almost-zeros to exact zeros, allowing the Interactive Simplex Method to recognize primal and dual feasibility and to avoid pivoting on zero pivot elements.

(Split out from the larger ticket #18804.)

Change History (9)

comment:1 Changed 4 years ago by mkoeppe

  • Branch set to u/mkoeppe/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method

comment:2 Changed 4 years ago by mkoeppe

  • Cc zwang added
  • Commit set to 24eaba360ddb9f6c114315a412ec28684beff117

To be done:

  • Tests should be based on normal dictionaries, not the backend dictionaries from #18804
  • Perhaps have InteractiveLPProblem use LPCleanDictionary automatically when field is inexact

New commits:

24eaba3clean_dictionary.py copied from f45615c

comment:3 Changed 3 years ago by git

  • Commit changed from 24eaba360ddb9f6c114315a412ec28684beff117 to 067b75db3d800f28daa67248213024c5a7803a6d

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

067b75dclean_dictionary.py copied from f45615c

comment:4 Changed 3 years ago by git

  • Commit changed from 067b75db3d800f28daa67248213024c5a7803a6d to 2e4496b7598ba2c01ea10a24361e5e2be7b9ef16

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

2e4496bclean_dictionary.py copied from f45615c

comment:5 Changed 3 years ago by zwang

  • Branch changed from u/mkoeppe/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method to u/zwang/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method

comment:6 Changed 3 years ago by mkoeppe

  • Commit changed from 2e4496b7598ba2c01ea10a24361e5e2be7b9ef16 to 7bdddd4bf4a0b4681f300c156b62afdf832c9ec0
  • Dependencies set to #20874

New commits:

6cad314add objective_name() to dictionary interface
288e6f7Doc fix
62b9ec6clean_dictionary.py copied from f45615c
7bdddd4revise doc tests and implementation to use LPDictionary

comment:7 Changed 3 years ago by mkoeppe

  • Branch changed from u/zwang/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method to u/mkoeppe/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method

comment:8 Changed 3 years ago by mkoeppe

  • Commit changed from 7bdddd4bf4a0b4681f300c156b62afdf832c9ec0 to 5cfc380392e8dc48a774b9292ffe40229cd384b9

Needs more work. The interface has changed and it is now necessary to implement methods row_coefficients, column_coefficients instead of leaving_coefficients, entering_coefficients. Also need to use these new methods in the dictionary() method. And it needs an __eq__ method.


New commits:

65aafcdMerge remote-tracking branch 'trac/u/zwang/lpcleandictionary___floating_point_helper_class_for_interactive_simplex_method' into test_20203
259bf2fLPCleanDictionary: Run the testsuite
5cfc380LPCleanDictionary: Implement row_coefficients instead of leaving_coefficients

comment:9 Changed 3 years ago by mkoeppe

  • Cc pjxiao added
Note: See TracTickets for help on using tickets.