MODEL: SETS: PERSON /P1..P4/ : SEX, ORIENTATION, EDUCATION, AGE; RELATION(PERSON, PERSON) : X, AD, ED, MATCH, Q; ENDSETS [OBJ] MIN = @MAX(RELATION(I, J): Q(I, J) * X(I, J)) + @SUM(RELATION(I, J): Q(I, J) * X(I, J)); @FOR(RELATION: @BIN(X)); @FOR(PERSON(I): @SUM(PERSON(J): X(I, J)) = 1); @FOR(PERSON(I): X(I, I) = 0); DATA: SEX = 0, 1, 0, 1; !0 - WOMAN, 1 - MAN; ORIENTATION = 1, 1, 0, 0; !0 - HETERO, 1 - HOMO; EDUCATION = 2, 3, 3, 1; AGE = 18, 21, 24, 27; ENDDATA CALC: @FOR(RELATION(I, J): AD(I, J) = @ABS(AGE(I) - AGE(J))); @FOR(RELATION(I, J): ED(I, J) = @ABS(EDUCATION(I) - EDUCATION(J))); @FOR(RELATION(I, J) | (SEX(I) #NE# SEX(J)) #AND# (ORIENTATION(I) #EQ# 0 #OR# ORIENTATION(J) #EQ# 0): MATCH(I, J) = 0); @FOR(RELATION(I, J) | (SEX(I) #EQ# SEX(J)) #AND# (ORIENTATION(I) #EQ# 1 #OR# ORIENTATION(J) #EQ# 1): MATCH(I, J) = 0); @FOR(RELATION(I, J) | #NOT#((SEX(I) #NE# SEX(J)) #AND# (ORIENTATION(I) #EQ# 0 #OR# ORIENTATION(J) #EQ# 0)): MATCH(I, J) = 5); @FOR(RELATION(I, J) | #NOT#((SEX(I) #EQ# SEX(J)) #AND# (ORIENTATION(I) #EQ# 1 #OR# ORIENTATION(J) #EQ# 1)): MATCH(I, J) = 5); @FOR(RELATION(I, J): Q(I, J) = MATCH(I, J) + AD(I, J) + ED(I, J)); ENDCALC @FOR(PERSON(I): @FOR(PERSON(J): X(I,J) = X(J,I))); END