## Copyright (C) 2011-2025 L. Markowsky <lmarkowsky@gmail.com>
##
## This file is part of the fuzzy-logic-toolkit.
##
## The fuzzy-logic-toolkit is free software; you can redistribute it
## and/or modify it under the terms of the GNU General Public License
## as published by the Free Software Foundation; either version 3 of
## the License, or (at your option) any later version.
##
## The fuzzy-logic-toolkit is distributed in the hope that it will be
## useful, but WITHOUT ANY WARRANTY; without even the implied warranty
## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with the fuzzy-logic-toolkit; see the file COPYING.  If not,
## see <http://www.gnu.org/licenses/>.

## Author:        L. Markowsky
## Keywords:      fuzzy-logic-toolkit fis
## Directory:     fuzzy-logic-toolkit/inst/
## Filename:      sugeno_tip_calculator.fis
## Last-Modified: 28 Aug 2012

% Sugeno Tip Calculator

% Computes cheap, average, and generous tips
% given food quality and service ratings.

[System]

Name = 'Sugeno-Tip-Calculator'
Type = 'sugeno'
Version = 1.0
NumInputs = 2
NumOutputs = 3
NumRules = 10
AndMethod = 'einstein_product'
OrMethod = 'einstein_sum'
ImpMethod = 'prod'
AggMethod = 'sum'
DefuzzMethod = 'wtaver'

[Input1]

Name = 'Food-Quality'
Range = [1 10]
NumMFs = 2
MF1 = 'Bad'  : 'trapmf', [0 1 3 7]
MF2 = 'Good' : 'trapmf', [3 7 10 11]

[Input2]

Name = 'Service'
Range = [1 10]
NumMFs = 2
MF1 = 'Bad'  : 'trapmf', [0 1 3 7]
MF2 = 'Good' : 'trapmf', [3 7 10 11]

[Output1]

Name = 'Cheap-Tip'
Range = [5 25]
NumMFs = 3
MF1 = 'Low'     : 'constant', [10]
MF2 = 'Medium'  : 'constant', [15]
MF3 = 'High'    : 'constant', [20]

[Output2]

Name = 'Average-Tip'
Range = [5 25]
NumMFs = 3
MF1 = 'Low'     : 'constant', [10]
MF2 = 'Medium'  : 'constant', [15]
MF3 = 'High'    : 'constant', [20]

[Output3]

Name = 'Generous-Tip'
Range = [5 25]
NumMFs = 3
MF1 = 'Low'     : 'constant', [10]
MF2 = 'Medium'  : 'constant', [15]
MF3 = 'High'    : 'constant', [20]

[Rules]

 1.30   1.30,   1.30   1.20   1.00 (1) : 1
 2.00   1.30,   1.00   1.00   2.00 (1) : 1
 2.20   1.20,   1.00   2.00   3.00 (1) : 1
 1.00   1.00,   1.00   1.00   2.00 (1) : 1
 2.00   1.00,   1.00   2.00   3.00 (1) : 1
 2.30   1.00,   1.00   2.00   3.20 (1) : 1
 1.00   2.00,   1.00   2.00   3.00 (1) : 1
 2.00   2.00,   2.00   2.00   3.20 (1) : 1
 1.20   2.20,   1.00   2.00   3.00 (1) : 1
 2.40   2.40,   3.00   3.20   3.30 (1) : 1
