| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using FuzzyLogicPCL;
- using FuzzyLogicPCL.FuzzySets;
- using System;
- namespace FuzzyLogicApp
- {
- class Test
- {
- static void Main(string[] args)
- {
- // Création des Fuzzy Sets
- FuzzySet fz = new FuzzySet(0, 100);
- Point2D pt1 = new Point2D(0, 1);
- Point2D pt2 = new Point2D(50, 0);
- Point2D pt3 = new Point2D(100, 0);
- fz.Add(pt3);
- fz.Add(pt2);
- fz.Add(pt1);
- TriangularFuzzySet tifz = new TriangularFuzzySet(0, 100, 30, 50, 70);
- FuzzySet itifz = !tifz;
- TrapezoidalFuzzySet trfz = new TrapezoidalFuzzySet(0, 100, 30, 50, 70, 80);
- TrapezoidalFuzzySet trfz2 = new TrapezoidalFuzzySet(0, 100, 30, 50, 70, 80);
- LeftFuzzySet lfz = new LeftFuzzySet(0, 100, 30, 50);
- RightFuzzySet rfz = new RightFuzzySet(0, 100, 70, 80);
- // Calcul des degrés
- /*Console.WriteLine("**** Degree Fuzzy Set quelconque ****");
- PrintDegrees(fz);
- Console.WriteLine("\n**** Test Triangular Fuzzy Set ****");
- PrintDegrees(tifz);
- Console.WriteLine("\n**** Test Inversed Triangular Fuzzy Set ****");
- PrintDegrees(itifz);
- Console.WriteLine("\n**** Test Trapezoidal Fuzzy Set ****");
- PrintDegrees(trfz);
- Console.WriteLine("\n**** Test Left Fuzzy Set ****");
- PrintDegrees(lfz);
- Console.WriteLine("\n**** Test Right Fuzzy Set ****");
- PrintDegrees(rfz);*/
- // Affichage
- /*Console.WriteLine("\n**** Print ****");
- Console.WriteLine("Trap Fuzzy Set :");
- Console.WriteLine(trfz.ToString());
- Console.WriteLine("Left Fuzzy Set :");
- Console.WriteLine(lfz.ToString());
- Console.WriteLine("Triang Fuzzy Set :");
- Console.WriteLine(tifz.ToString());
- Console.WriteLine("Inverse triang Fuzzy Set :");
- Console.WriteLine(itifz.ToString());*/
- // Test des opérateurs
- /*Console.WriteLine("\n**** Test operators ****");
- Console.WriteLine("1/2 Trap Fuzzy Set :");
- Console.WriteLine((trfz * 0.5).ToString());
- Console.WriteLine("1/4 Left Fuzzy Set :");
- Console.WriteLine((lfz * 0.25).ToString());*/
- // Test égalité
- /*Console.WriteLine("\n**** Test equality ****");
- Console.WriteLine("Trap Fuzzy Set 1 :");
- Console.WriteLine(trfz.ToString());
- Console.WriteLine("Trap Fuzzy Set 2 :");
- Console.WriteLine(trfz2.ToString());
- Console.WriteLine("TRFZ == TRFZ2 (true) : " + (trfz == trfz2));
- Console.WriteLine("TRFZ != TRFZ2 (false) : " + (trfz != trfz2));
- Console.WriteLine("TRFZ == LFZ (false) : " + (trfz == lfz));*/
- // Test intersection
- /*Console.WriteLine("\n**** Test intersection");
- Console.WriteLine("FS1 : " + trfz.ToString());
- Console.WriteLine("FS2 : " + lfz.ToString());
- Console.WriteLine("TIFS : " + tifz.ToString());
- Console.WriteLine("FS : " + fz.ToString());
- Console.WriteLine("****");
- Console.WriteLine("FS1 & FS2 : " + (trfz & lfz).ToString());
- Console.WriteLine("FS2 & FS1 : " + (lfz & trfz).ToString());
- Console.WriteLine("FS1 & FS1 : " + (trfz & trfz).ToString());
- Console.WriteLine("FS1 & 0.5 * FS2 : " + (trfz & (lfz * 0.5)).ToString());
- Console.WriteLine("0.5 * FS1 & FS2 : " + ((trfz * 0.5) & lfz).ToString());
- Console.WriteLine("FS1 & TIFS : " + (trfz & tifz).ToString());
- Console.WriteLine("FS1 & FS : " + (trfz & fz).ToString());
- Console.WriteLine("FS2 & TIFS : " + (lfz & tifz).ToString());
- Console.WriteLine("FS2 & FS : " + (lfz & fz).ToString());
- Console.WriteLine("tri1 & tri2 : " + (new TriangularFuzzySet(20, 100, 40, 50, 60) & new TriangularFuzzySet(0, 80, 30, 40, 50)).ToString());
- Console.WriteLine("tri2 & tri1 : " + (new TriangularFuzzySet(0, 80, 30, 40, 50) & new TriangularFuzzySet(20, 100, 40, 50, 60)).ToString());*/
- // Test union
- /*Console.WriteLine("\n**** Test union");
- Console.WriteLine("FS1 : " + trfz.ToString());
- Console.WriteLine("FS2 : " + lfz.ToString());
- Console.WriteLine("TIFS : " + tifz.ToString());
- Console.WriteLine("FS : " + fz.ToString());
- Console.WriteLine("****");
- Console.WriteLine("FS1 | FS2 : " + (trfz | lfz).ToString());
- Console.WriteLine("FS2 | FS1 : " + (lfz | trfz).ToString());
- Console.WriteLine("FS1 | FS1 : " + (trfz | trfz).ToString());
- Console.WriteLine("FS1 | 0.5 * FS2 : " + (trfz | (lfz * 0.5)).ToString());
- Console.WriteLine("0.5 * FS1 | FS2 : " + ((trfz * 0.5) | lfz).ToString());
- Console.WriteLine("FS1 | TIFS : " + (trfz | tifz).ToString());
- Console.WriteLine("FS1 | FS : " + (trfz | fz).ToString());
- Console.WriteLine("FS2 | TIFS : " + (lfz | tifz).ToString());
- Console.WriteLine("FS2 | FS : " + (lfz | fz).ToString());
- Console.WriteLine("tri1 | tri2 : " + (new TriangularFuzzySet(20, 100, 40, 50, 60) | new TriangularFuzzySet(0, 80, 30, 40, 50)).ToString());
- Console.WriteLine("tri2 | tri1 : " + (new TriangularFuzzySet(0, 80, 30, 40, 50) | new TriangularFuzzySet(20, 100, 40, 50, 60)).ToString());*/
- // Test centre de gravité
- /*Console.WriteLine("\n**** Test centre de gravité");
- Console.WriteLine("TRFS : " + trfz.ToString());
- Console.WriteLine("TRFS CoG : " + trfz.Centroid());
- Console.WriteLine("1/2 TRFS : " + (trfz*0.5).ToString());
- Console.WriteLine("1/2 TRFS CoG : " + (trfz*0.5).Centroid());
- Console.WriteLine("TIFS : " + tifz.ToString());
- Console.WriteLine("TIFS CoG : " + tifz.Centroid());
- Console.WriteLine("LFS : " + lfz.ToString());
- Console.WriteLine("LFS CoG : " + lfz.Centroid());
- Console.WriteLine("FS : " + fz.ToString());
- Console.WriteLine("FS CoG : " + fz.Centroid());
- Console.WriteLine("TRFS & LFZ : " + (trfz & lfz).ToString());
- Console.WriteLine("TRFS & LFZ CoG : " + (trfz & lfz).Centroid());
- Console.WriteLine("TRFS | LFZ : " + (trfz | lfz).ToString());
- Console.WriteLine("TRFS | LFZ CoG : " + (trfz | lfz).Centroid());*/
- while (true) ;
- }
- static void PrintDegree(double x, FuzzySet fs)
- {
- Console.WriteLine("Degree at value " + x + " : " + fs.DegreeAtValue(x));
- }
- static void PrintDegrees(FuzzySet fs)
- {
- PrintDegree(-2, fs);
- PrintDegree(0, fs);
- PrintDegree(25, fs);
- PrintDegree(30, fs);
- PrintDegree(48, fs);
- PrintDegree(50, fs);
- PrintDegree(60, fs);
- PrintDegree(75, fs);
- PrintDegree(100, fs);
- PrintDegree(120, fs);
- }
- }
- }
|