Ultra-Fast Hybrid Genetic Algorithm in Assembly Language for the Travelling Salesman Problem (DLL for LPA Prolog)

UPDATE (8 Oct. 2009): new HD YouTube video about this project:

You can also watch a (slightly dated) slide-show about this algorithm here:

http://omadeon.com/tsp

I am currently using this algorithm’s DLL inside a large-scale Scheduling Application for Multiple Tasks, in LPA WIN-Prolog. Some screen-shots from the program’s main window are shown in the following animated GIF:

O.G.T.S.P. Algorithm sample screen-shots

O.G.T.S.P. Algorithm sample screen-shots

Reblog this post [with Zemanta]

8 Responses

  1. Before claiming “Faster than all other algorithm”, maybe you want to compare with Concorde.

    http://www.tsp.gatech.edu/concorde.html

  2. Thanks a lot, Serge.

    It will be fascinating to compare it with Concorde.

  3. @Serge
    BTW, I did NOT say “faster than ALL other algorithms”, I only said “faster than all the algorithms I TRIED”! :)

    P.S. I tried Concorde and it does seem EXTREMELY fast, so the “fight” may be… close! Ah, well, we shall soon find out…

    Another reason to finish the remaining optimisations in the calling program, which is in Prolog (an interpreter, in fact).

  4. Кстати, по радио программа была об этом. Не помню, правда на какой волне…

  5. спасибо за статью… добавил в ридер

  6. Since you seem fluent in both LPA and PDC Prolog, would you like to write an article on how to choose between them? Not for a specific application, just as a general Prolog programming environment.

    (Excuse the off-topicness of the comment)

  7. @adamo
    Thanks for your comment, it’s perfectly ON TOPIC in this blog.

    Well, I would strongly recommend LPA Prolog, if one’s knowledge of standard Prolog is of a higher priority. I would also certainly, gladly write about this, since it depends on one’s priorities and goals.

    Normally, for many practical programming projects, Visual (PDC-) Prolog could be better… if only it didn’t have a VERY SERIOUS problem, which I personally can’t tolerate at all:
    - It compiles VERY SLOWLY!!!

    About 2 minutes total compilation time for a small- to- medium- sized project, is simply TOO MUCH for me! :) Unfortunately, this dreadful slowdown took place ever since PDC/Visual Prolog became object-oriented and they started using it to “compile itself”, as a kind of boot-strapping. They forgot ALL about ‘C’ or Assembly, in the meantime. The whole company (PDC) started “thinking in Visual Prolog” and its object-oriented structure was certainly a great benefit, but the price they paid for this was a great loss of speed. I’m not even sure about the final speed of executable programs; however the compilation time is unacceptable for most serious programmers.

    As a matter of fact, I _still_ use an older version of Visual Prolog, now obsolete and UNavailable, Visual Prolog 5.1, which is many times faster than the new versions (after version 6.0) but almost without any object-orientedness. It’s one of the fastest, neatest compilers ever made. I still use it, but quite often I use it to compile DLL-libraries, which are then called by LPA Prolog. So, a short answer to your question is “use BOTH” – except that Visual Prolog is no longer what it used to be….

    ( I will write about these topics soon, anyway )

  8. [...] software in Prolog (with Assembly language for speed). However, other obligations (in a scheduling project) as well as the absence of anyone’s… willingness to finance a project in tagging, not [...]

Leave a Reply