ZE S Z Y T Y N A U K O W E P O L IT E C H N IK I Ś L Ą S K IE J Seria: A U T O M A T Y K A z. 144
2006 N r kol. 1727
R afał S Z K L A R C Z Y K P o litech n ik a Śląska
M D M G V R P - N O W Y W A R I A N T P R O B L E M U M A R S Z R U T Y Z A C J I P O J A Z D Ó W . C Z Ę Ś Ć 2 - R O Z W I Ą Z A N I E M E T O D Ą C L P
S t r e s z c z e n i e . W a rty k u le p rz ed staw io n o dw a p ro g ram y do ro zw iązy w an ia M D M G V R P , p ro b lem u opisanego w a rty k u le [1]. A rty k u ł n in iejszy zaw iera opis p ro g ra m u , k ró tk o sch a rak tery zo w an e różn ice p o m ięd zy d w o m a u ż y ty m i n arzęd ziam i: C H IP ’em oraz G N U P rologiem . N a koniec zam ieszczono p rz y k ła d d an y ch i rozw iązania.
M D M G V R P - A N E W V A R I A N T O F V E H I C L E R O U T I N G P R O B L E M . P A R T 2 - T H E C L P S O L U T I O N
S u m m a r y . T h e p a p e r p re se n ts tw o C L P p ro g ra m s solving M D M G V R P , d esc rib ed in th e p a p e r [1]. T h e tw o p ro g ra m s a re in C H IP a n d G N U P rolog.
T h e p ro g ra m s a re co m p ared a n d th e ir m a in differences h ig h lig h ted . F in ally , th e y are b o th ap p lied to a re p re s e n ta tiv e M D M G V R P pro b lem .
1. W s t ę p
C L P je s t sk ró te m p o ch o d zący m o d angielskiego co n stra in t logie program - rning, czyli p ro g ram o w an ia w logice z ogran iczen iam i. P o d ejście C L P je s t s to sunkowo nowe i w ciąż m ało p o p u larn e . C L P poleg a n a p rzeg ląd zie p rz e strz e n i rozw iązań z zasto so w an iem m e to d o g ra n ic zen ia zb io ru p o szuk iw ań ty p u “b ra n c h an d b o u n d ” z d o d atk o w ą p ro p a g a c ją og ran iczeń (ang. con straints). P ro p a g a c ja t a re d u k u je - w w iększym lu b m niejszy m s to p n iu - dom eny zm ien ny ch d y s k re t
nych, czyli zb io ry m ożliw ych w arto ści przy jm o w an y ch p rzez zm ienne. W te n sp o sób uzy sk u jem y z n a c z n ą redukcję czasu p o szukiw ań ro zw iązan ia. C L P u m ożliw ia uzyskanie ro z w ią z a n ia optym alnego. Jeśli z a trz y m a m y p o szu k iw an ia p rz ed zn ale
zieniem o p tim u m , n a rz ę d z ia C L P z w ra c a ją n a jle p sz e ro zw iązan ie znalezione p rz e d z a trzy m an iem . E fek tyw ność m e to d y zależy w sposób k ry ty cz n y o d um iejętn o ści zm niejszenia rozm iaró w d rzew a p o szuk iw ań n a d ro d z e w łaściw ej p ro p a g acji o g ra
niczeń pro b lem u .
Do n a jp o p u la rn ie jsz y c h narzęd zi C L P n ależy C H IP . In n y m n arzęd z ie m je s t GNU P rolo g. C H IP je s t n arzęd ziem k o m ercyjnym francuskiej firm y C O S Y T E C
106 R. S zklarczyk
[3, 1997], G N U P ro lo g je s t n arzęd ziem n ależący m do ro d z in y o pro g ram o w an ia opensour.ee i je s t d y stry b u o w a n y z a d a rm o n a za sa d a c h licencji G P L . N arzędzie to z o stało stw o rzone głów nie przez D a n ie la D iaza w 2002 r [2, 2002]. Do dy sku sji w y b ra n o te n a rz ę d z ia z uw agi n a fa k t, że je d n o z nich n ależy do g ru p y n arzęd z i kom ercyjnych, a d ru g ie je s t o p ro gram ow aniem d arm o w y m ro z w in ię ty m p rzez śro
dowisko akadem ickie. In n y m pow odem je s t su b iek ty w n y w y b ó r a u to ra niniejszego a rty k u łu . N ie są to je d y n e n arzęd z ia C L P. W a rto zw rócić uw agę n a E clipse. J e st to p ro d u k t zbliżony co C H IP . In n y m p rz y k ła d e m je s t C iao P ro lo g o m odułow ej budow ie i dużej g am ie d o stęp n y ch rozszerzeń (m ięd zy inn ym i C L P ).
S k ła d n ie rozw ażanych n arzęd zi za c z e rp n ię to z języ k a P ro lo g, o bydw a n a rzęd zia sta n o w ią jego dialekty.
W C H I P ie m am y do dyspozycji szerszy w achlarz w bud ow an ych p re d y k a
tów , k tó re p o z w a la ją n a w prow adzenie w arunków u m o żliw iający ch rozw iązyw anie skom plikow anych problemów- k o m b inatoryczny ch.
G N U P ro lo g p o d ty m w zględem je s t zn aczn ie uboższy. O feru je je d n a k m oż
liwość d o łą c z a n ia p re d y k ató w n ap isan y c h sam o dzielnie. P a k ie t in sta la c y jn y za
w iera p rz y k ła d w języ k u C. D odatkow o G N U P ro lo g p o zw ala n a tw orzenie nie
liniow ych ogran iczeń. P rz y ro zw iązyw aniu p ro b lem u M D M G V R P w łaściw ość t a o k az ała się w ażna.
W reszcie, w- p rz y p a d k u gdy istn ie je więcej n iż je d n o ro z w iązan ie o p ty m a l
ne, G N U P rolog oferuje m ożliw ość o b ejrz en ia w szy stk ich znalezionych ro zw iązań, p o d cz as gdy C H IP w skazuje tylko pierw sze znalezione. U zyskanie p o z o sta ły c h w C H I P ie w y m ag a tw o rz en ia dodatkow ego kodu.
2. K o n s t r u k c j a p r o g r a m u
P ro g ra m C L P do rozw iązy w ania M D M G V R P zb u d ow an y je st w ed łu g n a stęp u jąc eg o sch e m a tu :
1. D an e wrejściow e i o graniczenia 2. Część zasad n icza p ro g ra m u 3. P re d y k a ty pom ocnicze 4. D efinicja m acierzy odległości
W pierw szej części definiow ane s ą kolejno ładow ności sam ochodów oraz jedn o stk o w a k o szty p rz e je c h a n ia odległości d la w szy stkich sam ochodów , k tó re są d a n e do ro z w iąza n ia p roblem u. O trzy m u jem y :
L l= 1 5 , C l= 3 , MS1=4,
gdzie L oznacza ładowmość, C - jed n o stk o w y koszt p rz e je c h a n ia odległo
ści, M S - m ia sto sta rto w a sam ochod u. Liczby, k tó re z n a jd u ją się za lite ra m i, to indeksy. W pow yższym o z n a c z a ją n u m er sam o ch o d u , dla k tó re g o definiow ane są p a ra m e try .
M D M G V R P - now y w a ria n t p ro b lem u m a rs z ru ty z a c ji po jazdó w . C zęść 2 . . . 107
P rz y ję to ta k ą zasadę, że jeśli je s t więcej niż je d e n indeks, p ierw sza cy fra o zn a cza sam o ch ó d , d ru g a n u m er a so rty m e n tu , trz e c ia m iasto .
D alej zdefiniow ano s ta n y m agazynow a:
S=[S1,S2,S3,S4],
SA1=[SA11 , SA12, SA13, S A 1 4 ], SA2=[SA21, SA22, SA23, S A 2 4 ],
[ . . . ]
S1#=SA11+SA21+SA31+SA41+SA51+SA61, S2#=SA12+SA22+SA32+SA42+SA52+SA62,
[ . . . ]
S A 1 = [ 0 , 0 , 0 , 7 ] , SA2= [ 0 , 0 , 4 , 2 ] ,
Z m ienne 5 1 ,5 2 ... o z n a c z a ją su m ary c zn e s ta n y m agazynow a w poszczegól
nych m iastach . S A 2 1 o zn a cza s ta n m ag azyno w y p o jem n ik ó w z a so rty m e n te m 2 w m ieście 1.
W dalszej części p ro g ra m u zdefiniow ano z a p o trz e b o w a n ia n a poszczególne a so rty m e n ty w poszczególnych m iastach :
D = [ D l , D 2 , D 3 , D 4 ] ,
DA1=[DA11,DA12,DA13,DA14], DA2=[DA21, DA22, DA23, D A 24].
O z n aczen ia są an alogiczne do oznaczeń sta n ó w m agazynow ych.
O s ta tn ią d a n ą w p ro b lem ie są odległości m ięd zy m iastam i. W op isyw anym p ro g ram ie d efin icja odległości z n a jd u je się p o d koniec kodu. S posób za p isu to p re d y k a t o d l. W y g lą d a to n astęp u ją co :
o d l ( _ , 0 ) 0 ) . o d l ( l , 1 , 0 ) . o d l ( 1 , 2 , 1 ) . o d l ( l , 3 , 3 ) .
[ . . . 3
P re d y k a t o d l m a trz y p a ra m e try . P ierw szy to m iasto p o c z ą tk u p rz ejazd u , d ru g i to m ia sto docelow e, trz e c i to odległość do p rz e je c h a n ia m ięd zy nim i.
P ie rw sz a lin ia pow yższego ko d u s ta je się z ro z u m ia ła d op iero p o w yjaśnieniu za p isu szukanej tra s y sam o ch o d u . L in ia t a p o zw ala n a praw idłow e przeliczenie funkcji celu w p rz y p a d k u , gdy sa m o ch ó d stoi.
D ru g a lin ia oznacza, że z m ia s ta 1 do 1 odległość w ynosi 0. T rzecia zacy to w an a lin ia oznacza, że odległość z m ia s ta 1 do m ia s ta 2 w ynosi 1.
P o definicji za p o trz e b o w a ń n a s tę p u ją definicje zm iennych p o trz e b n y c h do o k re śle n ia rozw iązan ia, to je s t za ład u n k ó w , rozładunków ' o raz w ektorów tra s .
108 R . Szklarczyk
D efinicje p o p rz e p la ta n e są ogran iczen iam i (ang. c o n s tra in ts ). O g ran iczen ia te p o z w a la ją w ykluczyć p rz y p a d k i niedop u szczaln e z p u n k tu w id zen ia m o delu m atem aty cz n eg o [1]. P rz y k ła d e m tak ieg o o g ran iczen ia jest:
ZA123#=<SA23.
O z n acz a to , że z a ła d u n e k a so rty m e n tu n u m er 2 w m ieście n u m er 3 do sa
m ochodu n u m er 1 je s t m n ie jsz y lu b rów ny stan o w i m agazynow em u aso rty m e n tu 2 w m ieście 3.
Je d n y m z w ażn iejszy ch ograniczeń je st:
R12*D2#=R12*R12.
P ow yższe określa, że ro z ła d u n e k sam o ch o d u 1 w m ieście 2 je s t rów ny za
p o trze b o w an iu w ty m m ieście lub, że je s t rów ny 0. T akiego za p isu m o żn a użyć w G N U P rolo gu, k tó ry a k c e p tu je w w a ru n k ach iloczyny zm ienn ych decyzyjnych. W C H IP fie trz e b a za p isać to inaczej. N a p rz y k ła d :
if (R12#\=D2) then (R12#=0),
a w ięc, jeśli ro z ła d u n e k j e s t ró ż n y od za p o trzeb o w an ia, to ro z ła d u n e k je s t rów ny 0.
U m ieszczenie ta k ic h w a ru n k ó w g w a ran tu je, że z a p o trz e b o w a n ia z d an ego m ia s ta b ę d ą zasp o k o jo n e p rzez je d e n sam ochód, co je s t w aru n k iem m odelu.
D alej w p ro g ra m ie zdefiniow ane są trasy . T ra sa w p ro g ram ie to w ek to r T z indeksem o k re śla ją c y m n u m e r sam o ch o d u o w ym iarze rów nym liczbie m iast.
Inaczej niż o g ó ln a p o s ta ć p rz e d sta w io n a w m o d elu z a p o m o c ą m acierzy X , k tó ra p o sia d a ty le w ierszy i ty le kolum n, ile w ynosi liczb a m ia st. Jeśli jej elem ent je s t rów ny 1, to o znacza, że d a n y sam o ch ó d p o d ró ż u je z m ia s ta o n u m erze rów nym w ierszow i m acierz}' do m ia s ta o n u m erze rów nym ko lum nie m acierzy.
P rzy k ład o w o m a c ie rz y X :
X =
' 0, 1, 0, 0 0, 0, 0, 1 1, 0, 0, 0 0, 0, 1, 0 . o d p o w iad a w ekto r T :
T = [ 2, 4, 1, 3] .
P o zdefiniow aniu tr a s z n a jd u je się głów na część p ro g ram u : statistics(real_time,[Czas_s, ,
fd_minimize((
fd_labeling(RAll), fd_labeling(RA12), fd_labeling(RA21),
fd_labeling(RA22),
fd_labeling(ZAll), fd_labeling(ZA12), fd_labeling(ZA21),
M D M G Y R P - now y w a ria n t p ro b lem u m a rsz ru ty z a c ji p o jazdów . C zęść 2 . . . 109
fd_labeling(ZA22),
niezaladowane_stoja(Zl,T1), niezaladowane_stoja(Z2,T2),
jedz_gdzie_trzeba(Zl,R1,T1,MS1), j edz_gdzie_trzeba(Z2,R2,T 2 ,MS2),
fd_labeling(Tl), fd_labeling(T2),
/* Sprawdzanie poprawności trasy */
/* Ciągłość trasy, bilans i przekroczenie ładowności */
sprawdz_przeladowanie(MSl,T1,Z1,R1,0,L1),
bilans(MSI,T1,ZA11,RA11,0), bilans(MSI,11,ZA12,RA12,0), sprawdz_przeladowanie(MS2,T 2 ,Z2,R2 ,0,L2),
bilans(MS2,T2,ZA21,RA21,0), bilans(MS2,T2,ZA22,RA22,0), /* Liczenie funkcji celu */
dlugosc_trasy(Tl,1,DT1), dlugosc_trasy(T2,1,DT2),
CEL is (DT1*C1)+(DT2*C2), statistics(real_time,[Czas_l,_]),
write(’Cel’) ,nl, write(CEL),nl,
write(’EUREKA!’) ,nl, write(’Załadunki’),n l ,
write(’Zl=’),write(Zl),write(’, ZA11=’),write(ZA11), write(J, ZA12=’), write(ZA12),nl,write(’Z2=’), write(Z2),write(’, ZA21=’) ,write(ZA21),
write(’, ZA22=’) ,write(ZA22),nl, write(’Rozładunki’),nl,
write(’Rl=’),write(Rl),write(’, RA11=’),write(RAI1), write(’, RA12=’),write(RA12),nl, write(’R2=’) ,
write(R2),write(’, RA21=’) ,write(RA21), write(’, RA22=’),write(RA22),nl,
write(’Trasy’) ,nl,
write(’Tl=’),write(Tl),write(’, T2=’),write(T2),nl, write(’’) ,nl,
Czas is Czas_l-Czas_s,
write(’Czas liczenia=’) ,write(Czas),write(’ m s ’),nl, write(’’) ,nl
) , CEL ) ,
110 R. S zklarczyk
W G N U P ro lo g u za sa d n ic z ą rolę o d g ry w a p re d y k a t fd _ m in im iz e , k tó ry w ykonuje z n a jd u ją c y się w e w n ątrz kod ja k o p ierw szy p a r a m e tr ta k długo , aż w ar
to ść zm iennej p o d an e j jak o d ru g i p a r a m e tr (w pow yższym p rz y p a d k u zm iennej CEL) osiągnie mi ni mum.
W p rz ed staw io n y m p ro g ram ie obliczenia dokonyw ane są d la dw óch sa
m ochodów i dw óch aso rty m en tó w . N a p o c z ą tk u dokonyw ane je s t u k o n k re tn ie
nie załadun ków i ro zła d u n k ó w z a p o m o cą p re d y k a tu f d _ l a b e l i n g . D alej n a k ła d a n e są dodatkow e w a ru n k i w p o sta c i p re d y k ató w n i e z a l a d o w a n e _ s t o j a i j e d z _ g d z i e _ t r z e b a . W m om encie gdy z n a n e są ju ż z a ła d u n k i i ro z ła d u n k i, m o
żem y w ym usić, by sam o ch ó d , k tó ry nie uczestn iczy w tra n s p o r ta c h , z a ła d u n ki i ro z ła d u n k i są rów ne 0, m ia ł zerow ą tra sę . To w łaśn ie z a p e w n ia p re d y k a t n i e z a l a d o w a n e _ s t o ja . D alej, gdy wiemy, że sam o ch ó d ła d u je i ro zład o w u je w p ew nych m iastach , m ożem y w ym usić, b y w sp o m n ian e m ia s ta z n a la z ły się n a t r a sie. D o teg o słu ży p re d y k a t j e d z _ g d z i e _ t r z e b a .
W kolejnym k ro k u u k o n k re tn ia n e są tra s y sam ochodów i dalej sp ra w d zan e je s t, czy tr a s a je s t ciąg ła , to zn a czy czy w e k to r T nie zaw iera k ilk u niezależnych obiegów n a p rzy k ład :
T = [ 2, 1, 0, 5, 4]
oraz czy w każdym m om encie tra s y sam o ch ó d nie z o sta ł p rz eład o w an y (ła d u n ek w iększy niż ładow ność sam o ch o d u ) lu b czy nie w yład ow ano więcej niż w d a nym m om encie zn ajd o w ało się n a sam ochodzie. Te czynności w ykonuje p re d y k a t s p ra w d z _ p rz e la d o w a n ie , kolejne p re d y k a ty b i l a n s sp ra w d z a ją czy n ie n a s tą p i
ło w yładow anie większej ilości p ojem ników z poszczególnym i a so rty m e n ta m i niż z n a jd u ją cej się na sam ochodzie w każdym z m ia st trasy . N a koniec w yśw ietlane je s t rozw iązanie. T o d a je n a m m ożliwość p o d g lą d u kolejnych n a jlep sz y ch rozw ią
zań dopuszczalnych. W C H IP ’ie nie trz e b a zam ieszczać w p ro g ram ie in stru k c ji w r i t e , sy stem sam w y św ietla n a ek ran ie ro z w iąza n ia d op uszczalne o trzy m y w an e p rz ed rozw iązaniem o p ty m aln y m .
3. P r z y k ł a d
R ozw ażm y p rz y k ła d M D M G V R P , gdzie d an e są d w a sam ochody, d w a ro
d z a je asortym entó w , 6 m iast. W dw óch z n ich z n a jd u ją się m agazyny, a w cz te rec h klienci. S ta n y m agazynow e d la poszczególnych a so rty m en tó w określone są n a s tę pująco:
SA1=[0J0,0,7,2,0], SA2=[0,0,0,4,0,0].
Z am ów ienia za p isa n e są poniżej:
DA1=[2,4,1,0,0,0], DA2=[1,2,0,0,0,0].
M D M G Y R P - now y w a ria n t p ro b le m u m a rsz ru ty z a c ji p ojazdó w . C zęść 2 111
S am och ody s t a r tu j ą z m ia s ta 6, w k tó ry m nie m a an i m ag azy n u , ani k lien ta, tylko b a z a tra n sp o rto w a . P a r a m e tr y sam ochodów w y g lą d a ją n astęp u ją co :
L l= 1 0 , C l= 3 , MS1=6, L 2=6, C 2 = l , MS2=6,
gdzie L ozn acza ładow ność, C - k oszt p rz ejech a n ia jed n o stk i odległości, M S to m iejsce s ta r tu sam ochodu.
M acierz odległości d la d an e g o p rz y k ła d u w y g ląd a n astęp u jąco : ' 0 , 1, 3, 2, 4, 5 '
1, 0, 1, 2, 3, 4 A _ 3, 1, 0, 1, 3, 3
2, 2, 1, 0, 1, 2 • 4, 3, 3, 1, 0, 1 . 5 , 4, 3, 2, 1, 0
G N U P ro lo g n a k o m p u te rz e z a r c h ite k tu rą In te la (C eleron 1.4G H z, 256 MB ra m , sy stem o p eracy jn y M S W indow s X P H om e) ro zw iązuje za d an ie w czasie 32397 m ilisek und i p o d a je rozw iązanie:
C el 15
EUREKA! R o z w ią z a n ie o s t a t e c z n e : Z a ła d u n k i
Z 1 = [ 0 , 0 , 0 , 8 , 2 , 0 ] , ZA11= [ 0 , 0 , 0 , 5 , 2 , 0 ] , Z2= [ 0 , 0 , 0 , 0 , 0 , 0 ] , Z A 2 1 = [ 0 , 0 , 0 , 0 , 0 , 0 ] , R o z ła d u n k i
R l= [ 3 , 6 , 1 , 0 , 0 , 0 ] , RAI1 = [ 2 , 4 , 1 , 0 , 0 , 0 ] , R 2 = [ 0 , 0 , 0 , 0 , 0 , 0 ] , RA2 1 =[ 0 , 0 , 0 , 0 , 0 , 0 ] , T ra s y
T l= [ 0 , 1 , 2 , 3 , 4 , 5 ] , T 2 = [ 0 , 0 , 0 , 0 , 0 , 0 ] C zas l i c z e n ia = 3 2 3 9 7 ms
D od atkow o w y św ietla in fo rm ację, że nie je s t to je d y n e ro zw iązan ie i um oż
liw ia w y św ietlenie p o z o sta ły c h . N a p rz y k ła d : C el
15
EUREKA! R o z w ią z a n ie o s t a t e c z n e : Z a ła d u n k i
Z 1 = [ 0 , 0 , 0 , 1 0 , 0 , 0 ] , Z A 1 1 = [ 0 , 0 , 0 , 7 , 0 , 0 ] , Z A 1 2 = [ 0 , 0 , 0 , 3 , 0 , 0 ] Z2= [ 0 , 0 , 0 , 0 , 0 , 0 ] , ZA2 1 = [ 0 , 0 , 0 , 0 , 0 , 0 ] , ZA22=[ 0, 0 , 0 , 0 , 0 , 0 ] R o z ła d u n k i
R l= [ 3 , 6 , 1 , 0 , 0 , 0 ] , RAI1 = [ 2 , 4 , 1 , 0 , 0 , 0 ] , RA12=[ 1 , 2 , 0 , 0 , 0 , 0 ] R 2 = [ 0 , 0 , 0 , 0 , 0 , 0 ] , RA2 1 =[ 0 , 0 , 0 , 0 , 0 , 0 ] , RA22=[ 0, 0 , 0 , 0 , 0 , 0 ] ZA12=[0,0,0,3,0,0]
ZA22=[0,0,0,0,0,0]
RAI2=[1,2,0,0,0,0]
RA22=[0,0,0,0,0,0]
112 R. Szklarczyk
Trasy
Tl= [0,1,2,3,0,4], T2= [0,0,0,0,0,01 Czas liczenia=42712 ms
C H IP to sarno ro z w iąza n ie d a je p o czasie 38505 m ilisekund, z ty m , że p o d a je tylko pierw sze ro z w iąza n ie o p ty m aln e.
L IT E R A T U R A
1. S zklarczyk R .: M D M G V R P - now y w a ria n t p ro b lem u m arsz ru ty z a c ji p o ja z dów. C zęść 1 - S form ułow anie p roblem u. X V K ra jo w a K o n feren cja A u to m a ty zacji P rocesów D y sk re tn y ch , Z akopane 2006.
2. D iaz D.: D o k u m e n ta c ja p ro g ra m u G N U P rolog. P a ry ż 2002.
3. C O S Y T E C SA. D o k u m e n ta c ja p ro g ra m u C H IP . O rsay C edex 1997.
P o d z i ę k o w a n i a
A u to r ch c ia łb y podziękow ać P rof. A. N iederłiń sk iem u z a p om o c p rz y o p ra cow aniu teg o a rty k u łu .
R ecenzent: P rof, d r h ab . inż. Zbigniew B an aszak
A b s t r a c t
T h e p a p e r p re s e n ts tw o C L P (C o n s tra in t Logic P ro g ra m in g ) p ro g ram s for solving th e ¡M D M G V R P p ro b lem defined in th e aeco m p an in g p a p e r [1]. C L P a n ex a ct m e th o d for so lv in g c o m b in a to ria l problem s. I ts p ra c tic a l effectiveness d ep e n d s largely u p o n o u r a b ility to in tro d u c e su ch sets of c o n stra in ts, t h a t p ru n e large p a r ts of th e sea rch tr e e as co m p ared w ith th e ” b ra n c h a n d b o u n d ” b ru tefo rce m eth o d s.
Tw o C L P solver to o ls are discused. O ne is C O S Y T E C C H IP a n d th e o th er G N U P rolog. B o th to o ls h av e b een used to fo rm u late C L P p ro g ra m s for th e ¡MDM
G V R P pro blem . T h e p ro g ra m s tru c tu r e h as b een discused. I t consist of 4 m ain sections: 1. E n try d a t a a n d co n stra in ts, 2. M ain (co m p u tin g ) p a r t, 3. A d d itio n al p re d y k ates, 4. D ista n c e m a tr ix definition.
A d e m o n s tra tio n M D M G V R P p ro b lem h as b ee n solved using b o th C H IP a n d G N U P ro lo g p ro g ra m s.