public RestauranteFuzzyLogic() { atendimento = new VariavelLinguistica <int>(0, 10); atendimento.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 2.5f, 5 }); atendimento.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 2.5f, 5, 7.5f }); atendimento.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 5, 7.5f, 10, 11 }); comida = new VariavelLinguistica <int>(0, 10); comida.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 2.5f, 5 }); comida.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 2.5f, 5, 7.5f }); comida.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 5, 7.5f, 10, 11 }); gorjeta = new VariavelLinguistica <int>(0, 15); gorjeta.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 3.5f, 7.5f }); gorjeta.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 3.5f, 7.5f, 11 }); gorjeta.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 7.5f, 11, 15, 16 }); inferencia = new MotorInferencia(); inferencia.VariaveisEstado.Add(atendimento); inferencia.VariaveisEstado.Add(comida); inferencia.VariaveisControle.Add(gorjeta); inferencia.AddRegra(new Regra() .Se(atendimento, "Ruim", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Ruim", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Ruim", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Ruim", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Bom", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Bom", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); }
public RestauranteFuzzyLogic() { atendimento = new VariavelLinguistica<int>(0, 10); atendimento.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 2.5f, 5 }); atendimento.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 2.5f, 5, 7.5f }); atendimento.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 5, 7.5f, 10, 11 }); comida = new VariavelLinguistica<int>(0, 10); comida.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 2.5f, 5 }); comida.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 2.5f, 5, 7.5f }); comida.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 5, 7.5f, 10, 11 }); gorjeta = new VariavelLinguistica<int>(0, 15); gorjeta.AddTermo("Ruim", TipoFuncaoPertinencia.Trapezoidal, new float[] { -1, 0, 3.5f, 7.5f }); gorjeta.AddTermo("Medio", TipoFuncaoPertinencia.Triangular, new float[] { 3.5f, 7.5f, 11 }); gorjeta.AddTermo("Bom", TipoFuncaoPertinencia.Trapezoidal, new float[] { 7.5f, 11, 15, 16 }); inferencia = new MotorInferencia(); inferencia.VariaveisEstado.Add(atendimento); inferencia.VariaveisEstado.Add(comida); inferencia.VariaveisControle.Add(gorjeta); inferencia.AddRegra(new Regra() .Se(atendimento, "Ruim", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Ruim", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Ruim", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Ruim", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Ruim", Conector.AND) .Entao(gorjeta, "Medio", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Medio", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Medio", Conector.AND) .Se(comida, "Bom", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); inferencia.AddRegra(new Regra() .Se(atendimento, "Bom", Conector.AND) .Se(comida, "Bom", Conector.AND) .Entao(gorjeta, "Bom", Conector.AND)); }