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

Support for LP solvers #149

Open
wants to merge 100 commits into
base: master
Choose a base branch
from
Open

Conversation

Stazer
Copy link

@Stazer Stazer commented Feb 5, 2018

Hi,

I added a feature for replacing the modified Edmonds-Karp algorithm with the usage of LP solvers like SCIP or IBM's CPLEX. Nevertheless, selecting other solvers like the modified Edmonds-Karp or Ford-Fulkerson is possible. Distributing 1000 users to 21 choices takes with SCIP (non-commercial solver) around 4 seconds and with CPLEX 3 seconds. LP solvers can be used on remote machines as well, either by using SSH or HTTP(S). All settings can be made by using moodles plugin settings form. The main purpose is for many ratingallocate instances, which run simultaneously and for moodle sites with high traffic, since the remote usage of LP solvers reduce web servers load.

Hopefully there is a use for it!

Best Regards

@tobiasreischmann
Copy link
Member

Hey Stazer,
first of all, thanks for all the work you put in here and sorry that I did not reply for so long. However, I am not so sure if I want to take your code into the core of this plugin for two reasons. First, I do not see the necessity to solve the problems on external machines, since the algorithm runs usually as part of the cron, which does not have to be executed by the webserver, which serves the moodle site. Additional servers also increase the workload of maintenance.
Second, you produced lots of code, which I do not want to maintain in the future, since it generates additional workload for preparing future versions.
Nevertheless, I have a proposal for you. What do you think about a subplugin type for mod_ratingallocate, which allows to create own solvers and install them into the plugin. This subplugin type would offer an API, which allows for the development of different solvers such as the edmonds-karp algorithm or your lp solver. The subplugins would be stored in own repositories and could be linked in the readme. I hope this suggestion suits you.
We would need to discuss the interfaces of the subplugin API. Let me know, what you think.
Best regards,
Tobias

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

Successfully merging this pull request may close these issues.

2 participants