Skip to content

Rework scaling transformation to avoid renaming components #2704

Open
@jsiirola

Description

@jsiirola

Summary

Renaming components in the scaling transformation can be problematic (see, e.g., #2678). We should rewrite the transformation to avoid renaming components.

Rationale

#2678 pointed out several limitations with the scaling transformation. In particular:

  • renaming components does not play well with References, especially when only scaling / transforming a part of the model. We should consider reworking the scaling transformation to be out-of-place, deactivating the original Constraints and creating new Variables / Constraints in a transformation block.
  • out-of-place transformations (e.g., _create_using() could be made more efficient to leverage _apply_to and just return the new transformation block as the model
  • We should explore generalizing the AutoLinkedBooleanVar concept from GDP to generate a generic "update callback" mechanism for components like Vars
    • (note that we could also do something similar for Sets, which is a "feature" that has been frequently assumed to exist).

Description

Additional information

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions