Thomas Davie tatd100 at
Thu Jan 8 17:07:56 EST 2004

> <html><div style='background-color:'><P>Hi Guys,</P>
> <P>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 performance. </P>

One thing you might consider is whether or not it needs to run that 
fast - what happens if a student runs out of project choices? Do they 
need to pick new choices?  We have a similar system here at York, and 
it ends up taking several days to run because students have to modify 
their choices to allow it to work.

I've snipped your code and ignored it, because I'm guessing that your 
uni's rules on collusion are as strict as they are here, and they 
wouldn't be too chuffed if I were to give you a hand with it.

Hope this helps


More information about the Haskell-Cafe mailing list