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

Contribution guide #492

Open
saona-raimundo opened this issue Jan 5, 2024 · 6 comments
Open

Contribution guide #492

saona-raimundo opened this issue Jan 5, 2024 · 6 comments

Comments

@saona-raimundo
Copy link

I would kike to contribute a new algorithm, but there is no contribution guide.
How should I proceed?

@volkm
Copy link
Contributor

volkm commented Jan 7, 2024

Can you give us some details which type of algorithm you plan to add? Then we can give you some suggestions and pointers.
An overview of some developer guidelines can be found in doc/developers.md.

@saona-raimundo
Copy link
Author

The algorithm is a variant of Value Iteration for Markov Decision Processes.
The main development was designed for reachability problems, but it also works for shortest stochastic path objectives.
The closest related algorithm is optimistic value iteration (https://doi.org/10.1007/978-3-030-53291-8_26).
Naturally, we believe our approach is significantly different.
Our last implementation efforts were using STORM's codebase and we run the algorithm on the QVBS benchmark set.

We will submit to ICALP a paper soon.
Let me know what you think.

@sjunges
Copy link
Contributor

sjunges commented Jan 7, 2024

Hey,

It would be great to have this algorithm in Storm.

Things that may be good to clarify before we work on a pull request:

  • Does the new algorithm introduce any new dependencies to the storm code base.
  • Does it modify any of the existing data structures for matrices etc or provide new data structures for storing things that we already store?

Also, as we would need to maintain the code, having it well documented and having some unit tests is quite essential.

Furthermore, if it is a variant of value iteration, it would be great if we could work towards integrating it in the solver interfaces of Storm. This is, however, not a strict requirement.

@saona-raimundo
Copy link
Author

Thanks for the response

Does the new algorithm introduce any new dependencies to the storm code base?

No.

Does it modify any of the existing data structures for matrices etc or provide new data structures for storing things that we already store?

No

Also, as we would need to maintain the code, having it well documented and having some unit tests is quite essential.

Sure, we will provide unit tests.

Furthermore, if it is a variant of value iteration, it would be great if we could work towards integrating it in the solver interfaces of Storm. This is, however, not a strict requirement.

Sure, we agree.

How would you like to proceed?

@sjunges
Copy link
Contributor

sjunges commented Jan 14, 2024

That sounds good. Is your code in a state that you want to show this? Then I would suggest you open a pull-request.

@saona-raimundo
Copy link
Author

Thank you!
With the other authors, we decided to contribute the implementation only after receiving a notification from the conference we submitted to, which is at the end of March.
Sorry for the trouble, we will come back to a pull-request then.

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

3 participants