Test.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using FuzzyLogicPCL;
  2. using FuzzyLogicPCL.FuzzySets;
  3. using System;
  4. namespace FuzzyLogicApp
  5. {
  6. class Test
  7. {
  8. static void Main(string[] args)
  9. {
  10. // Création des Fuzzy Sets
  11. FuzzySet fz = new FuzzySet(0, 100);
  12. Point2D pt1 = new Point2D(0, 1);
  13. Point2D pt2 = new Point2D(50, 0);
  14. Point2D pt3 = new Point2D(100, 0);
  15. fz.Add(pt3);
  16. fz.Add(pt2);
  17. fz.Add(pt1);
  18. TriangularFuzzySet tifz = new TriangularFuzzySet(0, 100, 30, 50, 70);
  19. FuzzySet itifz = !tifz;
  20. TrapezoidalFuzzySet trfz = new TrapezoidalFuzzySet(0, 100, 30, 50, 70, 80);
  21. TrapezoidalFuzzySet trfz2 = new TrapezoidalFuzzySet(0, 100, 30, 50, 70, 80);
  22. LeftFuzzySet lfz = new LeftFuzzySet(0, 100, 30, 50);
  23. RightFuzzySet rfz = new RightFuzzySet(0, 100, 70, 80);
  24. // Calcul des degrés
  25. /*Console.WriteLine("**** Degree Fuzzy Set quelconque ****");
  26. PrintDegrees(fz);
  27. Console.WriteLine("\n**** Test Triangular Fuzzy Set ****");
  28. PrintDegrees(tifz);
  29. Console.WriteLine("\n**** Test Inversed Triangular Fuzzy Set ****");
  30. PrintDegrees(itifz);
  31. Console.WriteLine("\n**** Test Trapezoidal Fuzzy Set ****");
  32. PrintDegrees(trfz);
  33. Console.WriteLine("\n**** Test Left Fuzzy Set ****");
  34. PrintDegrees(lfz);
  35. Console.WriteLine("\n**** Test Right Fuzzy Set ****");
  36. PrintDegrees(rfz);*/
  37. // Affichage
  38. /*Console.WriteLine("\n**** Print ****");
  39. Console.WriteLine("Trap Fuzzy Set :");
  40. Console.WriteLine(trfz.ToString());
  41. Console.WriteLine("Left Fuzzy Set :");
  42. Console.WriteLine(lfz.ToString());
  43. Console.WriteLine("Triang Fuzzy Set :");
  44. Console.WriteLine(tifz.ToString());
  45. Console.WriteLine("Inverse triang Fuzzy Set :");
  46. Console.WriteLine(itifz.ToString());*/
  47. // Test des opérateurs
  48. /*Console.WriteLine("\n**** Test operators ****");
  49. Console.WriteLine("1/2 Trap Fuzzy Set :");
  50. Console.WriteLine((trfz * 0.5).ToString());
  51. Console.WriteLine("1/4 Left Fuzzy Set :");
  52. Console.WriteLine((lfz * 0.25).ToString());*/
  53. // Test égalité
  54. /*Console.WriteLine("\n**** Test equality ****");
  55. Console.WriteLine("Trap Fuzzy Set 1 :");
  56. Console.WriteLine(trfz.ToString());
  57. Console.WriteLine("Trap Fuzzy Set 2 :");
  58. Console.WriteLine(trfz2.ToString());
  59. Console.WriteLine("TRFZ == TRFZ2 (true) : " + (trfz == trfz2));
  60. Console.WriteLine("TRFZ != TRFZ2 (false) : " + (trfz != trfz2));
  61. Console.WriteLine("TRFZ == LFZ (false) : " + (trfz == lfz));*/
  62. // Test intersection
  63. /*Console.WriteLine("\n**** Test intersection");
  64. Console.WriteLine("FS1 : " + trfz.ToString());
  65. Console.WriteLine("FS2 : " + lfz.ToString());
  66. Console.WriteLine("TIFS : " + tifz.ToString());
  67. Console.WriteLine("FS : " + fz.ToString());
  68. Console.WriteLine("****");
  69. Console.WriteLine("FS1 & FS2 : " + (trfz & lfz).ToString());
  70. Console.WriteLine("FS2 & FS1 : " + (lfz & trfz).ToString());
  71. Console.WriteLine("FS1 & FS1 : " + (trfz & trfz).ToString());
  72. Console.WriteLine("FS1 & 0.5 * FS2 : " + (trfz & (lfz * 0.5)).ToString());
  73. Console.WriteLine("0.5 * FS1 & FS2 : " + ((trfz * 0.5) & lfz).ToString());
  74. Console.WriteLine("FS1 & TIFS : " + (trfz & tifz).ToString());
  75. Console.WriteLine("FS1 & FS : " + (trfz & fz).ToString());
  76. Console.WriteLine("FS2 & TIFS : " + (lfz & tifz).ToString());
  77. Console.WriteLine("FS2 & FS : " + (lfz & fz).ToString());
  78. Console.WriteLine("tri1 & tri2 : " + (new TriangularFuzzySet(20, 100, 40, 50, 60) & new TriangularFuzzySet(0, 80, 30, 40, 50)).ToString());
  79. Console.WriteLine("tri2 & tri1 : " + (new TriangularFuzzySet(0, 80, 30, 40, 50) & new TriangularFuzzySet(20, 100, 40, 50, 60)).ToString());*/
  80. // Test union
  81. /*Console.WriteLine("\n**** Test union");
  82. Console.WriteLine("FS1 : " + trfz.ToString());
  83. Console.WriteLine("FS2 : " + lfz.ToString());
  84. Console.WriteLine("TIFS : " + tifz.ToString());
  85. Console.WriteLine("FS : " + fz.ToString());
  86. Console.WriteLine("****");
  87. Console.WriteLine("FS1 | FS2 : " + (trfz | lfz).ToString());
  88. Console.WriteLine("FS2 | FS1 : " + (lfz | trfz).ToString());
  89. Console.WriteLine("FS1 | FS1 : " + (trfz | trfz).ToString());
  90. Console.WriteLine("FS1 | 0.5 * FS2 : " + (trfz | (lfz * 0.5)).ToString());
  91. Console.WriteLine("0.5 * FS1 | FS2 : " + ((trfz * 0.5) | lfz).ToString());
  92. Console.WriteLine("FS1 | TIFS : " + (trfz | tifz).ToString());
  93. Console.WriteLine("FS1 | FS : " + (trfz | fz).ToString());
  94. Console.WriteLine("FS2 | TIFS : " + (lfz | tifz).ToString());
  95. Console.WriteLine("FS2 | FS : " + (lfz | fz).ToString());
  96. Console.WriteLine("tri1 | tri2 : " + (new TriangularFuzzySet(20, 100, 40, 50, 60) | new TriangularFuzzySet(0, 80, 30, 40, 50)).ToString());
  97. Console.WriteLine("tri2 | tri1 : " + (new TriangularFuzzySet(0, 80, 30, 40, 50) | new TriangularFuzzySet(20, 100, 40, 50, 60)).ToString());*/
  98. // Test centre de gravité
  99. /*Console.WriteLine("\n**** Test centre de gravité");
  100. Console.WriteLine("TRFS : " + trfz.ToString());
  101. Console.WriteLine("TRFS CoG : " + trfz.Centroid());
  102. Console.WriteLine("1/2 TRFS : " + (trfz*0.5).ToString());
  103. Console.WriteLine("1/2 TRFS CoG : " + (trfz*0.5).Centroid());
  104. Console.WriteLine("TIFS : " + tifz.ToString());
  105. Console.WriteLine("TIFS CoG : " + tifz.Centroid());
  106. Console.WriteLine("LFS : " + lfz.ToString());
  107. Console.WriteLine("LFS CoG : " + lfz.Centroid());
  108. Console.WriteLine("FS : " + fz.ToString());
  109. Console.WriteLine("FS CoG : " + fz.Centroid());
  110. Console.WriteLine("TRFS & LFZ : " + (trfz & lfz).ToString());
  111. Console.WriteLine("TRFS & LFZ CoG : " + (trfz & lfz).Centroid());
  112. Console.WriteLine("TRFS | LFZ : " + (trfz | lfz).ToString());
  113. Console.WriteLine("TRFS | LFZ CoG : " + (trfz | lfz).Centroid());*/
  114. while (true) ;
  115. }
  116. static void PrintDegree(double x, FuzzySet fs)
  117. {
  118. Console.WriteLine("Degree at value " + x + " : " + fs.DegreeAtValue(x));
  119. }
  120. static void PrintDegrees(FuzzySet fs)
  121. {
  122. PrintDegree(-2, fs);
  123. PrintDegree(0, fs);
  124. PrintDegree(25, fs);
  125. PrintDegree(30, fs);
  126. PrintDegree(48, fs);
  127. PrintDegree(50, fs);
  128. PrintDegree(60, fs);
  129. PrintDegree(75, fs);
  130. PrintDegree(100, fs);
  131. PrintDegree(120, fs);
  132. }
  133. }
  134. }