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

More functionality for DPDA #102

Open
Tagl opened this issue Nov 9, 2022 · 7 comments
Open

More functionality for DPDA #102

Tagl opened this issue Nov 9, 2022 · 7 comments

Comments

@Tagl
Copy link
Contributor

Tagl commented Nov 9, 2022

My next focus was gonna be a little bit on DPDAs. I've started implementing enumeration and iteration.
Are there any specific operations that you're particularly interested in prioritizing?
Some of them may not have any known efficient algorithm (regularity of language) or may even be undecidable (although that's more common for the nondeterministic version).
@caleb531 @eliotwrobson

Some ideas:

  • Enumeration
  • Iteration
  • Union with regular language
  • Intersection with regular language
  • Complement
  • Equivalence
  • Emptiness
  • Regularity (exponential complexity)
@eliotwrobson
Copy link
Collaborator

@Tagl I'm not an expert on these operations (my domain of knowledge and usage on stuff in the package is mostly limited to regular languages), but these all seem reasonable. I guess the operations with regular languages are the most interesting to me (due to what I said previously).

@caleb531
Copy link
Owner

caleb531 commented Nov 9, 2022

@Tagl Ideally, enumeration/iteration is something I'd personally love to see implemented for all automaton types. But I understand if we start running against the wall of feasibility.

Equivalence would also be great to have, but I understand if there are challenges with that. The order you listed other operations seems like a fine priority for me (e.g. care more about union than complement, and more about complement than emptiness).

@caleb531
Copy link
Owner

caleb531 commented Nov 9, 2022

@Tagl (cc @eliotwrobson) I think I'd actually like to save any DPDA work for a post-v7 release. I am starting to get eager to release v7 soon, with all of its substantial improvements to the library.

@eliotwrobson
Copy link
Collaborator

@caleb531 I'm inclined to agree. We've merged in a ton of changes that significantly overhaul large parts of the library. I think it would be good to release and get feedback on the existing changes.

@Tagl
Copy link
Contributor Author

Tagl commented Nov 9, 2022

I think I'd actually like to save any DPDA work for a post-v7 release. I am starting to get eager to release v7 soon, with all of its substantial improvements to the library.

No worries, this is gonna take a long time.

@eliotwrobson
Copy link
Collaborator

Since there was mention of having the __iter__ working for all automaton types in the discussion here, I'll say that I'm not sure about any of the PDAs beyond the DPDA, but this is definitely infeasible for TMs (in fact, I don't think there are any nontrivial algorithms for TMs).

@caleb531
Copy link
Owner

@eliotwrobson Just want to comment and say that's fine with me! If a feasible algorithm doesn't exist, then it is what it is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants