Graham Klyne GK at
Thu Jan 8 16:49:51 EST 2004

I have two thoughts:

It sounds as if you are using an algorithm that is inherently 
inefficient.  It may be that you need to re-think the algorithm used to 
optimize "assignment of projects for students based on their ranking".  If 
the aggregate ranking is based on a linear combination of preferences (or 
something that can be bounded by such a combination) then you may be able 
to employ Linear Programming techniques (the "Simplex method" was current 
when I was taught such things, but I believe there are better algorithms 
around today).

If you are currently using the Hugs interpreter, a speed increase of (very 
roughly) an order of magnitude or so might be achieved by switching to 
creating a directly executable program using the Glasgow Haskell Compiler.


At 16:25 08/01/04 +0000, Bhrein Brannick wrote:

>Hi Guys,
>I'm a fourth year computer science in Ireland and I'm doing my final year 
>project on Haskell programming. What I'm doing is writing a program in 
>Haskell for the maths department for my college. What it involves is this: 
>There is a class of 50 students and there are about 25 staff members. Now 
>some staff member's take on three students, two students or even just one 
>student depending on the staff member for supervising students. The 
>students rank the projects the staff members have on offer in order of 
>preference from 1 to 4 (see Haskell code in mail attachment). The program 
>finds the best assignment of projects for students based on their ranking. 
>The program works fine and that but my problem is that it takes way too 
>much time to execute the program. When I reduced class number to 10 
>students and only included 10 staff for allocation projects it took thirty 
>seconds to execute. That was fine. But when I increased class number to 20 
>students it took 10 minutes to execute. I tried it once for a class of 50 
>students and I wouldn't let it finish since it was taking far too long. 
>I'm just wondering is there any way that the program can be improved so 
>that execution of program can be faster. Even if there were software 
>available that makes Haskell programs runs faster that would be a great 
>help. I have a presentation in this, which I have only ten minutes to show 
>the department what I'm talking about, and I want to include a 
>demonstration of the program in it. Can you please help me with this since 
>I tried a number of things with this and it never once seemed to improve 
>Thank you,
>Bhrein Brannick,
>Maths department,
>NUI Galway,
>beano #7
>The new <>MSN 8: smart spam protection 
>and 2 months FREE*
>Haskell-Cafe mailing list
>Haskell-Cafe at

Graham Klyne
For email:

More information about the Haskell-Cafe mailing list