Hi,

One of my constraint definitions in a scheduling problem is using
extensive memory and computation time (please see attached). We call it
UsageConsraint. The basic idea is something like this -- a resource
should not spend more than a certain amount of time in a time period
(i.e., a pilot will not fly more than 8 hrs in a 24 hr window). Can
anybody quickly browse the code and see if there are some big pitfalls
that are causing so much resource usage? For this constraint Oz engine
is using as much as 2 GB of memory for 100 tasks with 50 or so resources
and I need to run this for 1000 tasks or more. Any help is much
appreciated.

proc {ApplyConstraint RU Task PeriodStart PeriodEnd Duration
ConstraintResourceId}
      {FD.impl
       (RU.id =: ConstraintResourceId)
       ({FD.exor
         {FD.conj
          (
           {FD.conj
            (Task.start >=: PeriodStart)
            (Task.start <: PeriodEnd)
           }
          )
          (Duration \=: 0)
         }
          
         {FD.conj
          (
           {FD.nega
            {FD.conj
             (Task.start >=: PeriodStart)
             (Task.start <: PeriodEnd)
            }
           }
          )
          (Duration =: 0)
         }
        })
       1
      }
   End

Thanks,

Ashis

Attachment: UsageConstraint.oz
Description: UsageConstraint.oz

_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to