1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | language Essence 1.2.0 $ prob056.essence: SONET Configuration $ $ A SONET communication network comprises a number of rings, each joining a $ a number of nodes. A node is installed on a ring using an add-drop multiplexer $ (ADM) and there is a capacity bound on the number of ADMs that can be $ installed on a ring. Each node can be installed on more than one ring. $ Communication can be routed between a pair of nodes only if both are installed $ on a common ring. Given the capacity bound and a specification of which pairs $ of nodes must communicate, allocate a set of nodes to each ring so that the $ given communication demands are met. The objective is to minimise the number $ of ADMs used. (This is a common simplification of the full SONET problem.) $ $ 03 September 2007 $ given nnodes, nrings, capacity : int (1..) letting Nodes be domain int (1..nnodes) given demand : set of set ( size 2) of Nodes find network : mset ( size nrings) of set ( maxSize capacity) of Nodes minimising sum ring in network . |ring| such that forAll pair in demand . exists ring in network . pair subsetEq ring |