public DiscreteFuzzySetBLL Discretize(ContinuousFuzzySetBLL ConFS, double StartPoint, double epsilon) { DiscreteFuzzySetBLL DiscFS = new DiscreteFuzzySetBLL(); DiscFS.FuzzySetName = ConFS.FuzzySetName; DiscFS.FuzzySet = ConFS.FuzzySet; for (double value = StartPoint; value <= ConFS.Bottom_Right; value += epsilon) { double membership = ConFS.GetMembershipAt(value); DiscFS.AddPoint(value, membership); } return DiscFS; }
public int DeleteDiscreteFS(DiscreteFuzzySetBLL disc) { try { int result = 0; if (IsExistFSName(disc.FuzzySetName))//Delete object { var _disc = db.DiscreteLibaries.FirstOrDefault(id => id.LanguisticLabel == disc.FuzzySetName); db.DeleteObject(_disc); return result = db.SaveChanges(); } else//Doing nothing { return result = -1; } } catch { //throw new Exception(ex.Message); return -1; } }
private FzTupleEntity IsSatisfyExpression(String[] splitedList, FzTupleEntity tuple) { FzTupleEntity result = new FzTupleEntity() { ValuesOnPerRow = tuple.ValuesOnPerRow }; int indexAttr = Convert.ToInt32(splitedList[0]); String dataType = this._attributes[indexAttr].DataType.DataType; Object value = tuple.ValuesOnPerRow[indexAttr];//we don't know the data type of value int count = 0; DiscreteFuzzySetBLL disFS = new DiscreteFuzzySetBLL().GetByName(splitedList[2]);//2 is value input ContinuousFuzzySetBLL conFS = new ContinuousFuzzySetBLL().GetByName(splitedList[2]); if (conFS != null)//continuous fuzzy set is priorer than discrete fuzzy set { Double uValue = FuzzyCompare(Convert.ToDouble(value), conFS, splitedList[1]);//1 is operator Double uRelation = Convert.ToDouble(tuple.ValuesOnPerRow[tuple.ValuesOnPerRow.Count - 1]); if (uValue != 0) { result.ValuesOnPerRow[tuple.ValuesOnPerRow.Count - 1] = Math.Min(uValue, uRelation); count++; } } if (disFS != null && conFS == null) { Double uValue = FuzzyCompare(Convert.ToDouble(value), disFS, splitedList[1]); Double uRelation = Convert.ToDouble(tuple.ValuesOnPerRow[tuple.ValuesOnPerRow.Count - 1]); if (uValue != 0) { result.ValuesOnPerRow[tuple.ValuesOnPerRow.Count - 1] = Math.Min(uValue, uRelation); count++; } } if (disFS == null && conFS == null) { if (ObjectCompare(value, splitedList[2], splitedList[1], dataType)) { count++; } } if (count == 1)//it mean the tuple is satisfied with all the compare operative { return result; } return null; }
private Double FuzzyCompare(Double value, DiscreteFuzzySetBLL set, String opr) { Double result = 0; switch (opr) { case "<":// if (set.GetMinValue() > value) { result = 1; } return result; case ">": if (set.GetMaxValue() < value) { result = 1; } return result; case "<=": if (value <= set.GetMaxValue()) { result = 1; } return result; case ">=": if (value >= set.GetMaxValue()) { result = 1;//select } return result; case "=": if (set.IsMember(value)) { result = set.GetMembershipAt(value); } return result; case "!="://No need to get the membership if (!set.IsMember(value)) { result = 1; } return result; } return result; }
public List<DiscreteFuzzySetBLL> GetAllDiscreteFuzzySet() { List<DiscreteFuzzySetBLL> resultList = new List<DiscreteFuzzySetBLL>(); ///Get all discrete fuzzy set var disc = from d in db.DiscreteLibaries select d; foreach (var item in disc.ToList()) { DiscreteFuzzySetBLL result = new DiscreteFuzzySetBLL(); //Get list values result.ValueSet = SplitString(item.Values.ToString()); //Get list memberships result.MembershipSet = SplitString(item.Memberships.ToString()); //Get Other values result.FuzzySetName = item.LanguisticLabel; //Some get FuzzySet Fomr referenced object //finally, add to list resultList.Add(result); } return resultList; }
public int UpdateDiscreteFS(DiscreteFuzzySetBLL disc) { try { int result = 0; if (!IsExistFSName(disc.FuzzySetName))//Add new object { //Insert mother library (contens both discrete library and continuous library) //FuzzySetBLL mother = new FuzzySetBLL(disc.FuzzySetName, disc.FuzzySet); //if (new FuzzySetDAL().UpdateFuzzySet(mother) == 1) //{ //Insert child library DiscreteLibary child = new DiscreteLibary(); child.LanguisticLabel = disc.FuzzySetName; child.Values = ConvertToString(disc.ValueSet); child.Memberships = ConvertToString(disc.MembershipSet); db.AddToDiscreteLibaries(child); return result = db.SaveChanges(true); //} //else //{ // return -1; //} } else//Just update values and memberships { var _disc = db.DiscreteLibaries.FirstOrDefault(id => id.LanguisticLabel == disc.FuzzySetName); //_disc.LanguisticLabel = disc.FuzzySetName; _disc.Values = ConvertToString(disc.ValueSet); _disc.Memberships = ConvertToString(disc.MembershipSet); return result = db.SaveChanges(); } } catch (SQLiteException ex) { //throw new Exception(ex.Message); return -1; } }
public DiscreteFuzzySetBLL GetDiscreteFuzzySetByName(String name) { DiscreteFuzzySetBLL result = new DiscreteFuzzySetBLL(); var disc = db.DiscreteLibaries.SingleOrDefault(id => id.LanguisticLabel == name); if (disc != null) { result.FuzzySetName = disc.LanguisticLabel; //Some get fuzzySet from referenced object result.ValueSet = SplitString(disc.Values); result.MembershipSet = SplitString(disc.Memberships); } else result = null; return result; }
private DiscreteFuzzySetBLL GetDataRows() { DiscreteFuzzySetBLL result = new DiscreteFuzzySetBLL(); result.FuzzySetName = this.txtLinguistic.Text.Trim(); for (int i = 0; i < gridView1.DataRowCount; i++) { result.AddPoint(Convert.ToDouble(gridView1.GetRowCellValue(i, "values").ToString()), Convert.ToDouble(gridView1.GetRowCellValue(i, "memberships").ToString())); } return result; }
private void RefreshData() { BindingList<Data> gridDataList = new BindingList<Data>(); List<DiscreteFuzzySetBLL> list = new DiscreteFuzzySetBLL().GetAll(); foreach (var item in list) { gridDataList.Add(new Data(false, item.FuzzySetName, ConvertToString(item.ValueSet), ConvertToString(item.MembershipSet))); } gridControl1.DataSource = null; gridControl1.DataSource = gridDataList; }
private List<DiscreteFuzzySetBLL> GetSelectedRows() { List<DiscreteFuzzySetBLL> result = new List<DiscreteFuzzySetBLL>(); for (int i = 0; i < gridView1.DataRowCount; i++) { if (gridView1.GetRowCellValue(i, "check").ToString() == "True") { DiscreteFuzzySetBLL set = new DiscreteFuzzySetBLL(); set.FuzzySetName = gridView1.GetRowCellValue(i, "name").ToString().Trim(); set.ValueSet = SplitString(gridView1.GetRowCellValue(i, "values").ToString().Trim()); set.MembershipSet = SplitString(gridView1.GetRowCellValue(i, "memberships").ToString().Trim()); result.Add(set); } } return result; }