########################## # file "Version4.smc" # SMC solver for distributed constraint satisfaction program # implements the algorithm MPC-DisCSP4 # but uses Generate and Test instead of a powerful backtracker # # Year 2004 ########################## p(t)=PROD(i,0,-(C,1),CONSTRAINT(i,t)) makeS=FOR(t,0,-(TuplesNb,1), _S, p(t), 0) selectS(length)=FOR(j,0,-(length,1), _k,IF(j,*(_k(-(j,1)),-(1,_S(-(j,1)))),1), _S2,*(_S(j),_k(j)), 0) main=SEQUENCE( makeS, SETLOCAL(length,CONDENSE(_S,TuplesNb,_permutation)), SHUFFLE(_S,length), selectS(length), UNSHUFFLE(_S2,length), UNCONDENSE(_S2,length,_permutation,_S,TuplesNb), FOR(i,0,-(M,1), _x,f(i), 0), FOR(i,0,-(M,1),_x,+(_x(i),M),0)) f(i)=SUM(t,0,-(TuplesNb,1),*(PROJ(t,i),_S(t))) #