| |||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mosel files for the Mosel-Python comparison blog Description Mosel files for the blog post comparing Mosel and Python. Instructions for running these files:
Source Files By clicking on a file name, a preview is opened at the bottom of this page. Data Files
ComplexConstraints_adv.mos
(!******************************************************
Mosel Example Problems
======================
file ComplexConstraints_adv.mos
```````````````````````````````
Improved version of model 'ComplexConstraints_std.mos'.
-- Defining constraints with multiple conditions --
(c) 2019-2025 Fair Isaac Corporation
author: S.Heipcke
*******************************************************!)
model "Complex Constraints"
!S:IMPORT
uses "mmetc","mmsystem","mmxprs"
parameters
DATA_FILE_PREFIX = "00"
end-parameters
writeln("#E:IMPORT")
writeln("#S:READ")
declarations
RN: range
D: array(RN, RN) of real
Dmax: array(RN) of real
F,G: real
q: array(RN, RN) of mpvar
end-declarations
initializations from "mmetc.diskdata:"
D as "sparse,skiph," + DATA_FILE_PREFIX + "_H_ComplexConstraints_D.csv"
end-initializations
writeln("#E:READ")
writeln("#S:PROC")
F:=0.8
G:= 0.7
forall(m in RN) Dmax(m):= max(p in RN) D(m,p)
declarations
B: array(RN, RN) of boolean
end-declarations
! Precalculate a repeated test condition
forall(i in RN, k in RN)
B(i,k):= (2 * D(i,k)<=G and D(i,k) + F * Dmax(k) <=G)
forall(i in RN, k in RN, j in RN, m in RN |
B(i,k) and B(j,m) and
(i<j and k<>j and i<>m and D(i,k) + F*D(k,m) + D(m,j) > G) )
q(i,k) + q(j,m) <= 1
loadprob(0)
writeln("#E:PROC")
writeln("#S:TEST")
forall (i in RN, k in RN, j in RN, m in RN |
B(i,k) and B(j,m) and
(i<j and k<>j and i<>m and D(i,k) + F*D(k,m) + D(m,j) > G) )
writeln(i, " ", k, " ", j, " ", m)
writeln("#E:TEST")
end-model
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| © Copyright 2025 Fair Isaac Corporation. |