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

W-Method Missing Test-Cases #27

Closed
emuskardin opened this issue Feb 10, 2022 · 5 comments
Closed

W-Method Missing Test-Cases #27

emuskardin opened this issue Feb 10, 2022 · 5 comments

Comments

@emuskardin
Copy link
Member

Address comments raised in: #26

Note to self:

  • override compute_char_set in Dfa and Moore, to solve the point about char_set_init
@emuskardin emuskardin changed the title W-Method W-Method Missing Test-Cases Feb 10, 2022
@emuskardin
Copy link
Member Author

@icezyclon
I think I have solved it.

In the W-Method, middle part is now not a combinations, but a product of input alphabet (repeated i times, for i-th length of middle sequence).

For computations of the char. sets, I have overridden the call from Dfa and Moore classes to include an empty sequence ([()]), should fix the issue that you faced.

Check it out on dev branch.

Ps.
I really like the method you have for Moore machine generation gen_moore_from_state_setup. Do you maybe have same method implemented for Dfa's and Mealyies. If not, I will implement them and add to AALpy :)

@icezyclon
Copy link
Contributor

@icezyclon I think I have solved it.

In the W-Method, middle part is now not a combinations, but a product of input alphabet (repeated i times, for i-th length of middle sequence).

For computations of the char. sets, I have overridden the call from Dfa and Moore classes to include an empty sequence ([()]), should fix the issue that you faced.

Check it out on dev branch.

Great, I will check it out today or tomorrow and give you some feedback 👍

Ps. I really like the method you have for Moore machine generation gen_moore_from_state_setup. Do you maybe have same method implemented for Dfa's and Mealyies. If not, I will implement them and add to AALpy :)

Yea, with this setup it is easier to see exactly what you have in a given Moore machine.
I sadly do not have setups for other types of automata.

Maybe you would be interested in some other helper methods?
I have methods for angelic or demonic completion of non-input-complete Moore machines and a way of getting the input alphabet even if the machine is not input-complete.

Btw. the assert in get_input_alphabet(), either you could raise a normal exception (instead of an assert that might be optimized away) or just implement the method in a way that does not require the machine to be input-complete. Just an idea ;)

@emuskardin
Copy link
Member Author

You are right about the assert in the get_input_alphabet(). I will add either a parameter or print the warning.

About other helper methods, lets discuss them first in a call. Most likely we can use them, I just have no idea what angelic or demonic stuff are :)

@emuskardin
Copy link
Member Author

emuskardin commented Feb 16, 2022

@icezyclon
My Skype is not working for some reason. We can also do a Skype call for the demonic stuff, just let me know so that I can go to the office.
I have a question where your knowledge might come in handy.

Do you have any idea/tips how to optimize the create_fpta method (found here)?

More or less it is the slowest part of the whole ALERGIA algorithm.
This method generates a frequency prefix tree, and it is painfully slow.

I think that multi-threading would not work.
If you have a moment to take a look and drop a hint if anything comes to mind I would be very thankful :)

@icezyclon
Copy link
Contributor

@icezyclon My Skype is not working for some reason. We can also do a Skype call for the demonic stuff, just let me know so that I can go to the office. I have a question where your knowledge might come in handy.

Do you have any idea/tips how to optimize the create_fpta method (found here)?

More or less it is the slowest part of the whole ALERGIA algorithm. This method generates a frequency prefix tree, and it is painfully slow.

I think that multi-threading would not work. If you have a moment to take a look and drop a hint if anything comes to mind I would be very thankful :)

Hi, I'll check it out next week, I am currently on vacation ;)

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

No branches or pull requests

2 participants