public SCPSolution Clone() { List <SCPAttribute> attributes = new List <SCPAttribute>(); Sets.ForEach(s => s.Attributes.ForEach(a1 => { if (attributes.Exists(a2 => a2.Tag == a1.Tag) == false) { attributes.Add(a1.Copy()); } })); SCPSolution clone = new SCPSolution(); Sets.ForEach(s => { SCPSet set = s.Copy(); clone.Sets.Add(set); s.Attributes.ForEach(a1 => { SCPAttribute attribute = attributes.Find(a2 => a2.Tag == a1.Tag); attribute.UsedIn.Add(set); set.Attributes.Add(attribute); }); }); clone.CriticalList = new List <SCPSet>(CriticalList); return(clone); }
public object Clone() { SCPDataSet copy = new SCPDataSet(); copy.Size = Size; Sets.ForEach(s => copy.Sets.Add((SCPSet)s.Copy())); Attributes.ForEach(a => copy.Attributes.Add(a.Copy())); Sets.ForEach(s1 => { SCPSet set = copy.Sets.Find(s2 => s2.Tag == s1.Tag); s1.Attributes.ForEach(a1 => { SCPAttribute attribute = copy.Attributes.Find(a2 => a2.Tag == a1.Tag); set.Attributes.Add(attribute); }); }); Attributes.ForEach(a1 => { SCPAttribute attribute = copy.Attributes.Find(a2 => a2.Tag == a1.Tag); a1.UsedIn.ForEach(s1 => attribute.UsedIn.Add(copy.Sets.Find(s2 => s2.Tag == s1.Tag))); }); return(copy); }
public int GetAttributeRedundancy(SCPAttribute attribute) { if (USet == null) { return(0); } return(USet.Where(u => u == attribute.Tag).Count()); }
public SCPAttribute Copy() { SCPAttribute copy = new SCPAttribute(); copy.UsedIn = new List <SCPSet>(); copy.Cost = Cost; copy.Tag = Tag; copy.Weight = Weight; copy.Frequency = Frequency; copy.Visit = Visit; copy.Probibility = 0; return(copy); }
public object Clone() { SCPAttribute clone = new SCPAttribute(); clone.UsedIn = new List <SCPSet>(); UsedIn.ForEach(s => clone.UsedIn.Add((SCPSet)s.Clone())); clone.Cost = Cost; clone.Tag = Tag; clone.Weight = Weight; clone.Frequency = Frequency; clone.Visit = Visit; clone.Probibility = Probibility; return(clone); }