I'm going to be trying to implement a tabu search. Through Coin-OR, I found The OpenTS framework for Java:

http://opents.iharder.net/

I don't know Java. I haven't found anything other than OpenTS. Does anyone know of anything for other languages? I'd prefer Python but links to anything relevant will be a useful answer.

Thanks!

asked 18 Apr '11, 17:09

Luis%20de%20la%20Torre's gravatar image

Luis de la T...
4231612
accept rate: 11%

Is OpenTS still being actively maintained? Nothing on the page seemed changed since I last looked at it in 2006. Back then, there was an issue that 2 objects are deemed equals if their hashCode() is equal (which violates the Java contract that 2 objects are likely to be equal if their hashCode() is equal and always unequal if it's different), of which I notified Robert in 2006 if I recall correctly.

(19 Apr '11, 07:51) Geoffrey De ... ♦

If you are intent on sticking to Python then try having a look at the Google or-tools framework. It has bindings for Python, Java, and C++. Most the documentation focusses on Linear Programming and Constraint Programming but if you have a dig about you'll find support for Local Search / Tabu Search.

Google or-tools main page

Tabu Search is just one of many meta-heuristic approaches. There are plenty of frameworks for developing Local Search algorithms (though primarily in C++). I think EasyLocal++ is probably the best supported out there, but there are others: HotFrame, METSlib, Meta-Heuristics Development Framework (MDF), Templatized Meta-heuristics Framework (TMF).

If you want to develop Local Search algorithms quickly then there's also Dynadec's Comet language. It's syntactically quite similar to Java / C++ but it contains lots of nice features that make implementing stuff like Tabu Search really simple. It's freely available for students / academics. Have a look at Dynadec's homepage

link

answered 18 Apr '11, 17:43

Alastair's gravatar image

Alastair
2006
accept rate: 50%

edited 18 Apr '11, 17:45

Hello, I'm an author of METSlib (https://projects.coin-or.org/metslib). My opinion may be biased ;), but as far as I can tell the framework has dozens of users around the world and it is actively developed and supported.

(20 May '11, 02:31) baol

I guess Dynadec has been closed for a while now

(28 Apr '14, 11:15) David

By the way, if you're looking for another alternative, take a look at unitime's cpsolver. Not production quality (= no standard logger, no maven poms, ...) or a reference manual, but it's the only released solved besides Drools Planner that made the top 5 in the examination timetabling competition 2007 track 1 (AFAIK).

link

answered 19 Apr '11, 06:07

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
3.6k32764
accept rate: 6%

java + heuristics/metaheuristics (tabu search, simulated annealing, ...) + production quality + business-friendly open source (Apache License) + documentation (reference manual + 13 examples) = OptaPlanner :)

link

answered 19 Apr '11, 06:02

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
3.6k32764
accept rate: 6%

edited 23 Apr '14, 05:58

You might take a look at the ParadisEO framework if you're familiar with C++ or willing to learn that language. They have several tutorials to help getting started.

link

answered 09 Jun '13, 01:16

ORNinja's gravatar image

ORNinja
1311
accept rate: 0%

Here is there any c++ code for tabu search I want to apply this in resource based assembly line balancing problem. I have done programming for this problem in using cplex but it does not give answers for large problems

link

answered 08 Jun '13, 13:16

mohitapm10's gravatar image

mohitapm10
112
accept rate: 0%

Look at my above comment about ParadisEO. It's in C++.

(10 Jun '13, 12:10) ORNinja

Actually in the COIN-OR repository there is also a simple C++ framework called METSlib

https://projects.coin-or.org/metslib

link

answered 24 Apr '14, 10:25

DeletedUser's gravatar image

DeletedUser
(suspended)
accept rate: 0%

Your answer
toggle preview

Follow this question

By Email:

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

By RSS:

Answers

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

Tags:

×28
×18
×2

Asked: 18 Apr '11, 17:09

Seen: 6,559 times

Last updated: 28 Apr '14, 11:15

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