Ciao a tutti, stavo lavorando a un'idea, praticamente sto realizzando una piccola e molto semplice libreria di logica fuzzy e mi sono trovato davanti un problema (premetto che è da poco che programmo in c#...abbiate pazienza se scrivo castronerie...):
Ho una classe principale FuzzySet che ha come attributi una collezione di fuzzy membri (un punto cartesiano x,y) e una descrizione e poi ho una classe FuzzyNumber che eredita FuzzySet e ha in + un attributo tipo (es. Triangolare, Trapezoidale, Quadratico).
codice:
public class FuzzySet
{
#region Private Variables
/// <summary>
/// Un Fuzzy Set ha come attributi un insieme di membri o di Fuzzy Set e una descrizione
/// </summary>
private FuzzySetCollection fuzzySets;
protected FuzzyMemberCollection fuzzyMembers;
protected String name;
public FuzzySet(FuzzyMemberCollection coll, String name)
{
this.fuzzyMembers = coll;
this.name = name;
}
// .....etc....
}
public class FuzzyNumber : FuzzySet
{
#region Private Variables
/// <summary>
/// tipologia di fuzzy Number: triangolare, trapezoidale, quadratico, normalizzato
/// </summary>
private String type;
#endregion
#region Constructor
public FuzzyNumber(FuzzyMemberCollection coll, String name, String type) : base(coll, name)
{
this.type = type;
}
#endregion
}
Ho anche un oggetto Collection FuzzySetCollection che ha un metodo find che cerca il fuzzy set con quella descrizione.
codice:
public FuzzySet find(String name)
{
foreach (FuzzySet set in this)
{
if (set.Name.Equals(name)) { return set; }
}
return null;
}
Il problema sta quando per calcolare il valore di verità di una proposizione tipo 35° è caldo io cerco il fuzzy set caldo lo trovo e devo capire se è un fuzzy number...visto che la classe fuzzy number ha in più l'attributo type pensavo di fare un metodo nella classe fuzzy set che controlla se quell'oggetto ha l'attributo type e nel caso fa un cast a fuzzy number...qualcuno ha qualche idea?
Spero di non essere stato troppo contorto...grazie a tutti!