MatchMaking Example 4 (read matchmaking example 3 first):
Assume, that a car seller sells a sedan car. A buyer is looking for a second hand passenger car. The preferences are as follows:
Buyer:
- he does not want to pay more than $26000 (buyer reservation value)
- if there is an alarm system in the car then he is completely satisfied with paying no more than $22300, but he can go up to $22750 to a lesser degree of satisfaction
- he wants a driver insurance and either a theft insurance or a fire insurance
- he wants air conditioning and the external colour should be either black or grey
- preferrably the price is no more than $22000, but he can go up to $24000 to a lesser degree of satisfaction
- the kilometer warranty is preferrably at least 175000, but he may go down to 150000 to a lesser degree of satisfaction
- the weights of the preferences 2-6 are, (0.1, 0.2, 0.1, 0.2, 0.4). The heigher the value the more important is the preference.
Seller:
- he wants to sell no less than $22000(seller reservation value)
- if there is an navigator pack system in the car then he is completely satisfied with paying no less than $22750, but he can go down to $22500 to a lesser degree of satisfaction
- preferrably the buyer buys the Insurance Plus package
- the kilometer warranty is preferrably at most 100000, but he may go up to 125000 to a lesser degree of satisfaction
- the monthly warranty is preferrably at most 60, but he may go up to 72 to a lesser degree of satisfaction
- if the color is black then the car has air conditioning
- the weights of the preferences 2-6 are, (0.3, 0.1, 0.3, 0.1, 0.2). The heigher the value the more important is the preference.
Background knowledge:
- a sedan is a passenger car
- a satellite alarm system is an alarm system
- the navigator pack is a satellite alarm system with a GPS system
- the Insurance Plus package is a driver insurance together with a theft insurance
- the car colours are back or grey
The encoding is as follows:
#Background ontology
(implies Sedan PassengerCar)
(implies SatelliteAlarm AlarmSystem)
(define-concept NavigatorPack (and SatelliteAlarm GPS_system))
(define-concept InsurancePlus (and DriverInsurance TheftInsurance))
(disjoint ExColorBlack ExColorGray)(functional HasAlarmSystem)
(define-concrete-feature HasPrice *real* 0 100000)
(functional HasAirConditioning)
(functional HasExColor)
(define-concrete-feature HasKMWarranty *integer* 0 300000)
(functional HasNavigator)
(functional HasMWarranty)
#Buyer statements
#Strict requirements
(define-concept Beta (and PassengerCar (<= HasPrice 26000)))
#Buyer Preferences
(define-fuzzy-concept ls1 left-shoulder(0,100000,22300,22750))
(define-concept B1 (implies (some HasAlarmSystem AlarmSystem) (some HasPrice ls1)))#(define-concept B2 (some HasInsurance (and DriverInsurance (or TheftInsurance FireInsurance))))
(define-concept B2 (and (some HasInsurance DriverInsurance) (or (some HasInsurance TheftInsurance) (some HasInsurance FireInsurance))))(define-concept B3 (and (some HasAirConditioning AirConditioning) (some HasExColor (or ExColorBlack ExColorGray))))
(define-fuzzy-concept ls2 left-shoulder(0,100000,22000,24000))
(define-concept B4 (some HasPrice ls2))(define-fuzzy-concept rs1 right-shoulder(0,300000,15000,175000))
(define-concept B5 (some HasKMWarranty rs1))#(define-concept buy (and Beta (w-sum (0.1 B1) (0.2 B2) (0.3 B3) (0.4 B4))))
(define-concept buy (and Beta (w-sum (0.1 B1) (0.2 B2) (0.1 B3) (0.2 B4) (0.4 B5))))#Seller statements
#Strict requirements
(define-concept Sigma (and Sedan (>= HasPrice 22000)))#Seller Preferences
(define-fuzzy-concept rs2 right-shoulder(0,100000,22500,22750))
(define-concept S1 (implies (some HasNavigator NavigatorPack) (some HasPrice rs2)))
(define-concept S2 (some HasInsurance InsurancePlus))
(define-fuzzy-concept SellerKmWarr left-shoulder(0,300000,100000,125000))
(define-concept S3 (some HasKMWarranty SellerKmWarr))(define-fuzzy-concept SellerMWarr left-shoulder(0,96,60,72))
(define-concept S4 (some HasMWarranty SellerMWarr))(define-concept S5 (implies (some HasExColor ExColorBlack) (some HasAirConditioning AirConditioning)))
(define-concept sell (and Sigma (w-sum (0.3 S1) (0.1 S2) (0.3 S3) (0.1 S4) (0.2 S5))))
#(define-concept sell (and Sigma (w-sum (0.3 S1) (0.1 S2) (0.3 S3) (0.3 S5))))
# Objective
(show-fillers HasPrice HasKMWarranty HasMWarranty)
(max-sat? (l-and buy sell))#HasPrice(ind1) = 22500.0
#HasKMWarranty(ind1) = 10000.0
#HasMWarranty(ind1) = 60.0
#Is Concept (buy)_L_AND_(sell) satisfiable? [Individual ind1] <= 0.7625
So an optimal match (the degree is 0.7625) would be an agreement on a price of $22500, with 100000 kilometer warranty and 60 month warranty.
The example file can be found here.