A.I. programming in Prolog and Assembler

May 8, 2009

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:


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

Enhanced by Zemanta


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


    Comment by Serge — May 9, 2009 @ 1:49 pm

  2. Thanks a lot, Serge.

    It will be fascinating to compare it with Concorde.

    Comment by omadeon — May 9, 2009 @ 5:48 pm

  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).

    Comment by omadeon — May 9, 2009 @ 9:29 pm

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

    Comment by Cederash — May 23, 2009 @ 9:48 pm

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

    Comment by Avertedd — May 26, 2009 @ 8:08 am

  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)

    Comment by adamo — June 23, 2009 @ 12:54 pm

  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 )

    Comment by omadeon — June 23, 2009 @ 5:53 pm

  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 […]

    Pingback by 6000 Delicious Links – in need of Automatic Text-tagging « OMADEON — September 12, 2009 @ 9:25 am

  9. Dear Sir ,
    i am developing an AI frame work in Visual Prolog for fault
    diagnosis in microprocessor systems
    pl help me

    Comment by prof.d.v.kodavade — January 31, 2010 @ 8:41 am

    • Well, there are LOTS of people in your position.

      Personally I get messages like this in my e-mail as well.
      Not many, but -say- 10-15 every year, particularly during the mid-term and end-of-term season.

      My response is negative, usually. I think industry should start looking into prolog applications seriously and educational institutions should start teaching it more decently.

      Comment by omadeon — April 9, 2010 @ 10:14 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: