« Complete Rewrite: Intressant blogg om databaser och systemutveckling | Main | My Constraint Programming Blog »

december 27, 2008

Constraint programming-nyheter samt nya MiniZinc-modeller

Här är några nyheter kring constraint programming sedan cirka oktober 2008 och inkluderar naturligtvis även en del MiniZinc-modeller.

My Constraint Programming page

För att samla ihop mina constraint programming-modeller/-referenser har skapats Constraint Programming som i stort sett endast är länkar till respektive "My XXXXXX page" (där "XXXXX" in {MiniZinc, Choco, JaCoP}).

MiniZinc

För vidare info, se My MiniZinc page.

JaCoP

För vidare info, se My JaCoP page.


Choco


För vidare info, se My Choco page.


Minion/Tailor


Tailor är ett trevligt modelleringsspråk som översätter en Essence'-modell (en nedstrippad variant av modelleringsspråket Essence) till Minion. Tailor är implementerat i Java.

Jag har skrivit några Tailor-modeller men de är ännu inte publikt publicerade, bland annat eftersom specifikationen av Tailor/Essence' inte har varit stabil. Återkommer om detta. Kan också notera att några av mina MiniZinc-modeller är portade från just Tailor/Essence'.


Global Constraint Catalog


Global constraint catalogue uppdaterades 2008-11-15. Det var några nya constraints, framförallt geost och andra packnings-constraints.

Det gjordes då också en strukturell förändring av sajten med ett nytt URL-schema. I stället för URL-ar såsom http://www.emn.fr/x-info/sdemasse/gccat/sec4.5.html (för alldifferent_cst), så är URL-en numera http://www.emn.fr/x-info/sdemasse/gccat/Calldifferent_cst.html, dvs .../C följt av constraint-namnet. Jag har dock inte ändrat referenserna i mina MiniZinc-modeller på My MiniZinc page; däremot har nya modeller den nya URL-en.


Gecode


Gecode har inte kommit ut med någon ny officiell release sedan augusti 2008. Däremot har Gecode/flatzinc uppdaterats (SVN-versionen) några gånger för att stödja nya versioner av MiniZinc. Som tidigare sagt är Gecode/flatzinc min favorit-MiniZinc-solver.


Gecode/R


Gecode/R är ett Ruby-gränssnitt till Gecode:

Gecode/R provides access to many, but not all, of the features in Gecode 2.2.0. Gecode/R is only a modelling interface, it does not provide support for e.g. creating new propagators.

Version 1.0 kom i september. Har inte kollat in Gecode/R så mycket, vilket emellanåt förvånar mig...

Comet

Comet är ett constraint programming-system som bygger på "local search". Det har kommersialierats och en tidsbegränsad version av 1.02 finns nu att ladda ner på Dynadec.

Denna version är mer kompetent och komplett än förra, men det är nu ännu fler skillnader mot det som beskrivs i boken Constrant-based local search av Pascal Van Hentenryck, Laurent Michel.


Nya MiniZinc modeller


Sedan sist har det skrivit ett flertal nya MiniZinc-modeller (och några har uppdaterats men det - med ett undantag - noteras inte här nedan). Som vanligt finns de alla samlade på My MiniZinc page.

Referenser och oftast en kort förklaring finns att läsa i respektive modell.

Pyssel och andra matematiska förströelse



GLPK


GLPK (GNU:s Linear Programming Kit) är en open source-projekt för linjär/heltals-programmering. GLPK har bl.a. ett AMPL-liknande språk kallat MathProg varpå följande MathProg-exempel har konverterats till MiniZinc. Några av de allra största exemplen har - ännu - inte konverterats.


Global constraints


En handfull global constraints från Global constraint catalogue har skapats:

Operations research, linear programming, integer programming

Kommentaren "Williams" refererar till den mycket trevliga boken om modellering inom operations research och matematisk programmering: Model Building in Mathematical Programming (4th edition), skriven av H. Paul Williams.

Combinatorial


Övrigt



Slutord


Det har sedan länge insetts att målgruppen för ovanstående saker i svensk språkdräkt inte är så väldigt stor, varför det har tänkts att starta en separat blogg på engelska som endast handlar om constraint programming och relaterade paradigm såsom nyheter samt nyskrivna modeller. Mer om detta senare.

Posted by hakank at december 27, 2008 10:51 EM Posted to Constraint Programming

Comments

Från min sida har det funderats på att skriva och publicera någon liten matlab-kodsnutt inspirerad av hakankska undersökningar. Nu under julledigheten kanske det fås tid för genomförandet av dylikt projekt. Funderingar har också genomförts för att bestämma tillämpning och inriktning av sådan snutt.

Trots "obegripligheten" i MiniZincandet (alltså, det kan inte anses obegripligt egentligen) anses det intressant att läsa. Det undras också nyfiket huruvida dessa tekniker får professionell användning?

Posted by: thebe at december 28, 2008 12:10 EM

Thebe: Tycker definitivt det ska matlabkodsnuttas! Koms det - förresten - ihågs hur det matlabkodsnuttades kring det s.k. Seseman-problemet, dvs på http://www.hakank.org/webblogg/archives/001084.html .


För övrigt undras det själv om dessa tekniker kommer att få professionell användning. Det finns åtminstone en potentiell bärkraft härvidlag.

Kan det av detta dras slutsatsen att det finns åtminstone en målgrupp >= 1 för en svensk språkdräktsvariant (skribenten ej inberäknad)? Eventuellt tillhör denna krets även den krets som skulle läsa en engelskt variant (skribenten nu inberäknad)?

Posted by: hakank [TypeKey Profile Page] at december 28, 2008 07:43 EM

För min del orkas det inte riktigt satsas på programmering längre, annars hade området som här gås igenom laget bra till. Det hölls på att snöas in på Prologimplmentationer i Java då exjobb skrevs för 8 år sedan, men tyvärr ficks inte sponsor.

Istället för att bidra till den sakliga och intellektuella diskussionen i ämnet noteras en språklig lustifikation. Under en liten tudsrymd troddes att de förstnämnda modellerna inte släpptes förbi dörrvakten till de andras party:

"Kan också notera att några av mina MiniZinc-modeller är portade från just Tailor/Essence'."

Posted by: Håkan (hakke) at januari 2, 2009 01:39 EM

Håkan (hakke): Det är trevligt även med lustifikationer, framförallt de språkliga.

Som kommentar till det inträffade: Så går det när man tänker på två språk samtidigt (där "tänker på" är något ambiguöst, men inte tillräckligt lustifikativt för att anses vara en lustifikation).

Posted by: hakank [TypeKey Profile Page] at januari 2, 2009 06:19 EM