Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Free band elements by graph representation #689

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

reiniscirpons
Copy link
Collaborator

@reiniscirpons reiniscirpons commented Jul 7, 2020

This PR adds some functions for creating and manipulating free band elements in a graph representation. This representation has benefits in comparison to the current tree based rep, and even a possible word based one.

  • Actually describe what the structure and algorithms are
  • Come up with representation description
    • Make structure mutable
    • Allow reusing memory
    • Make the graph irredundant (each node represents a single free band element)
  • Add methods to initialize FreeBandElementByGraph
    • Initialize from word
    • Initialize from tree-rep
    • Initialize from graph
  • Multiplication
    • Multiply by single letter
    • Figure out how to multiply two elements in graph-rep
  • Equality checking
  • Canonical word
  • Making a copy (to support immutable operations)
  • DotString for visualizing the structure
  • Iterators (?)
  • Collections of elements
    • Reuse element code to make collection, redefine elements be specified by a collection and node in collection
  • Write up a proof for certain results
    • V <= |A|*N where V is the number of vertices of the graph, N is the length of the shortest word representation and |A| is the size of the alphabet
    • The right multiplication by letter algorithm is correct
    • The canonical word algorithm actually produces the shortest possible word

@reiniscirpons reiniscirpons added do not merge Label for PR that should not be merged WIP Label for PRs that are Works In Progress (WIP) enhancement A label for issues or PRs that offer an enhancement to existing functionality labels Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do not merge Label for PR that should not be merged enhancement A label for issues or PRs that offer an enhancement to existing functionality WIP Label for PRs that are Works In Progress (WIP)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants