In this semester I have a course on Software Engineering and the term project requires to contribute (add functionality) to an existing OS software. We are free to select any project on our own.

I would like to work on OR-related software and I need some recommendations. Projects hosted on Sourceforge or Github would be preferable. I have obviously done some research on my own but other opinions are always welcome.

Preferable language is Java. It is also important that the code base is "reasonable", meaning that there is place for me to work.

Some keywords: heuristics, artificial intelligence, machine learning. Heuristics for ML in Data Mining - BI - Analytics.

asked 27 Feb '12, 05:23

Florents%20Tselai's gravatar image

Florents Tselai
accept rate: 7%

edited 27 Feb '12, 06:29

fbahr's gravatar image

fbahr ♦

We welcome contributors in JBoss Drools Planner.

Planner is:

  • Open source (apache license)
  • Java
  • Code hosted on GitHub
  • Issue tracker hosted in jira
  • User and developer mailing list (sycned to a web forum and newsgroup).
  • Well documented (including how to build from source) - see documentation manual.
  • Has 9 examples. So any heuristic you improve can immediately be tested on 9 examples.
  • Has a Benchmarker framework, to test and compare your heuristics easily.
  • Is part of a very big community (JBoss) backed by a strong company (Red Hat) which regularly recruits from the community.

Area's which are good to contribute at:

  • Fix the GreatDelugeAcceptor (easy)
  • Implement a LateAcceptanceAcceptor (easy)
  • Implement a GeneticAlgorithmsSolver (hard)
  • Implement a BranchAndBoundSolver (hard)
  • ... (just take a look at the open jira's to find inspiration)

answered 27 Feb '12, 06:07

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
accept rate: 6%

edited 27 Feb '12, 06:10

Hm, seems like a very good candidate. I also noticed that the VRP section is pretty new. I guess that was your motivation for the VRP test data question. I have implemented -among others- a class VRPIO for importing data from the standard benchmark instances and a class which implements the Clarke And Wright algorithm for generating an initial VRP Solution (needs some debugging though)

(27 Feb '12, 11:11) Florents Tselai

If you're looking for a really simple, small issue to start out with and see if you can get the git and maven build working and so on, then try fixing this simple issue and create a github pull request.

(29 Feb '12, 09:20) Geoffrey De ... ♦

OK. I am going to start working on drools-planner. I have already cloned the repo and succesfully imported it on Eclipse.

(10 Mar '12, 16:28) Florents Tselai

Welcome :-) Note that all of your github commits automatically enrich your masterbranch.com CV if you want that.

(11 Mar '12, 12:51) Geoffrey De ... ♦

If you like Scala (100% compatible with Java, also running on the JVM but much more cool than Java) we also welcome contributions to Scampi (constraint programming, linear programming, derivative free optimization, discrete event simulation): https://bitbucket.org/pschaus/scampi/wiki/Home

If you like to implement algorithms, in contraint programming, you can for instance implement a global constraint. This would be a very localized contribution but very useful (see https://bitbucket.org/pschaus/scampi/wiki/constraint).

I'm sure Asteroid also welcome contributions (Constrained Based Local Search in Scala): https://forge.pallavi.be/projects/asteroid/wiki


answered 27 Feb '12, 06:25

pierre%20schaus's gravatar image

pierre schaus
accept rate: 4%

Scala is definitely much more sexy and cooler then Java, but it's under criticism for being a elite-only and write-only language. 12 million Java developers make Java a mainstream, blue-collar, enterprise programming language (and that's not cool, but it's a good thing :). I liked Scala a lot, untill Ceylon came out and just rocked my world.

(29 Feb '12, 09:31) Geoffrey De ... ♦

You might want to check out the COIN-OR project at


They host many open source operations research related software packages.


answered 27 Feb '12, 09:09

Brian%20Borchers's gravatar image

Brian Borchers
accept rate: 21%


Not much of the COIN-OR code is in Java. I believe there's a Java port of Optimization Services. Writing Java wrappers for the "core" COIN-OR projects (such as CLP, CBC, ...) would be useful to the public, but it might not be all that exciting.

(27 Feb '12, 19:50) Paul Rubin ♦♦

COIN-OR was my first choice but... Dr. Rubin is absolutely right.

(28 Feb '12, 06:38) Florents Tselai
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 27 Feb '12, 05:23

Seen: 4,298 times

Last updated: 11 Mar '12, 12:51

OR-Exchange! Your site for questions, answers, and announcements about operations research.