Advertisement
cahyadsn

Tsukamoto Fuzzy Inference Engine

Dec 7th, 2015
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.96 KB | None | 0 0
  1. <?php
  2. /*********************************
  3. FILENAME  : tsukamoto.php
  4. CREATE BY  : cahya dsn
  5. PURPOSE   : Tsukamoto Fuzzy Inference Engine
  6. CREATE DATE : 2014-05-13
  7. **********************************/
  8. $x_min=isset($_POST['x_min'])?$_POST['x_min']:1000;
  9. $x_max=isset($_POST['x_max'])?$_POST['x_max']:5000;
  10. $y_min=isset($_POST['y_min'])?$_POST['y_min']:100;
  11. $y_max=isset($_POST['y_max'])?$_POST['y_max']:600;
  12. $z_min=isset($_POST['z_min'])?$_POST['z_min']:2000;
  13. $z_max=isset($_POST['z_max'])?$_POST['z_max']:7000;
  14. $x=isset($_POST['x'])?$_POST['x']:3500;
  15. $y=isset($_POST['y'])?$_POST['y']:300;
  16. ?>
  17. <!DOCTYPE html>
  18. <html>
  19.   <head>
  20.     <title>protoTsukamoto</title>
  21.     <style type='text/css'>
  22.       * {font-family:verdana,arial,sans-serif;font-size:10pt;}
  23.       h1{font-size:18pt;}
  24.       h2{font-size:14pt;line-height:16pt;}
  25.       fieldset{margin:5px;padding:5px;background-color:#eee;}
  26.       legend {font-weight:bold;padding:5px;background-color:#ee9;}
  27.       .inptxt{text-align:right;}
  28.     </style>
  29.   </head>
  30.   <body>
  31.     <div id='container'>
  32.       <h2>Sistem Inferensi Fuzzy</h2>
  33.       <h1>Metode Tsukamoto</h1>
  34.       <fieldset style='display:none'>
  35.         <legend>Kasus</legend>
  36.         <!-- reserved //-->
  37.       </fieldset>
  38.       <form method='post'>
  39.         <fieldset>
  40.           <legend>Batasan</legend>
  41.           <table>
  42.             <tr><th>Variabel</th><th>Min Value</th><th>Max Value</th></tr>
  43.             <tr>
  44.               <td>Permintaan (x)</td>
  45.               <td><input type='text' class='inptxt' name='x_min' value='<?=$x_min?>'/></td>
  46.               <td><input type='text' class='inptxt' name='x_max' value='<?=$x_max?>'/></td>
  47.             </tr>
  48.             <tr>
  49.               <td>Persediaan (y)</td>
  50.               <td><input type='text' class='inptxt' name='y_min' value='<?=$y_min?>'/></td>
  51.               <td><input type='text' class='inptxt' name='y_max' value='<?=$y_max?>'/></td>
  52.             </tr>
  53.             <tr>
  54.               <td>Produksi (z)</td>
  55.               <td><input type='text' class='inptxt' name='z_min' value='<?=$z_min?>'/></td>
  56.               <td><input type='text' class='inptxt' name='z_max' value='<?=$z_max?>'/></td>
  57.             </tr>
  58.           </table>
  59.         </fieldset>
  60.         <fieldset>
  61.           <legend>Inputan</legend>
  62.           <table>
  63.             <tr>
  64.               <td>Permintaan yang diinginkan (x)</td>
  65.               <td><input type='text' class='inptxt' name='x' value='<?=$x?>' /></td>
  66.             </tr>
  67.             <tr>
  68.               <td>Persediaan di gudang (y)</td>
  69.               <td><input type='text' class='inptxt' name='y' value='<?=$y?>' /></td>
  70.             </tr>
  71.           </table>
  72.         </fieldset>
  73.         <input type='submit' name='proses' value='proses' />
  74.       </form>
  75. <?php
  76. if(isset($_POST['proses'])){
  77. ?>        
  78.       <fieldset>
  79.         <legend>[1] Pembentukan Himpunan Fuzzy (Fuzzyfication)</legend>
  80.         <table border='1'>
  81.           <tr>
  82.             <th colspan='4'>Pemintaan</th>
  83.           </tr>
  84.           <tr>
  85.             <td rowspan='3'>&micro;<sub>permintaan NAIK</sub>(x)</td>
  86.             <td>1 , x<<?=$x_min?></td>
  87.             <td rowspan='3'>&micro;<sub>permintaan TURUN</sub>(x)</td>
  88.             <td>0 , x<<?=$x_min?></td>
  89.           </tr>
  90.           <tr>
  91.             <td>(<?=$x_max?>-x)/<?=($x_max-$x_min)?> , <?=$x_min?> &le; x &le;<?=$x_max?></td><td>(x-<?=$x_min?>)/<?=($x_max-$x_min)?> , <?=$x_min?> &le; x &le;<?=$x_max?></td>
  92.           </tr>
  93.           <tr>
  94.             <td>0 , x><?=$x_max?></td><td>1 , x><?=$x_max?></td>
  95.           </tr>
  96.           <tr>
  97.             <th colspan='4'>Persediaan</th>
  98.           </tr>
  99.           <tr>
  100.             <td rowspan='3'>&micro;<sub>persediaan BANYAK</sub>(y)</td>
  101.             <td>1 , y<<?=$y_min?></td>
  102.             <td rowspan='3'>&micro;<sub>persediaan SEDIKIT</sub>(y)</td>
  103.             <td>0 , y<<?=$y_min?></td>
  104.           </tr>
  105.           <tr>
  106.             <td>(<?=$y_max?>-y)/<?=($y_max-$y_min)?> , <?=$y_min?> &le; y &le;<?=$y_max?></td><td>(y-<?=$y_min?>)/<?=($y_max-$y_min)?> , <?=$y_min?> &le; y &le;<?=$y_max?></td>
  107.           </tr>
  108.           <tr>
  109.             <td>0 , y><?=$y_max?></td><td>1 , y><?=$y_max?></td>
  110.           </tr>
  111.           <tr>
  112.             <th colspan='4'>Produksi</th>
  113.           </tr>
  114.           <tr>
  115.             <td rowspan='3'>&micro;<sub>produksi BERTAMBAH</sub>(z)</td>
  116.             <td>1 , z<<?=$z_min?></td>
  117.             <td rowspan='3'>&micro;<sub>produksi BERKURANG</sub>(z)</td>
  118.             <td>0 , z<<?=$z_min?></td>
  119.           </tr>
  120.           <tr>
  121.             <td>(<?=$z_max?>-z)/<?=($z_max-$z_min)?> , <?=$z_min?> &le; z &le;<?=$z_max?></td><td>(z-<?=$z_min?>)/<?=($z_max-$z_min)?> , <?=$z_min?> &le; z &le;<?=$z_max?></td>
  122.           </tr>
  123.           <tr>
  124.             <td>0 , z><?=$z_max?></td><td>1 , z><?=$z_max?></td>
  125.           </tr>
  126.           <tr>
  127.             <td colspan='4'>
  128.               Permintaan: x=<?=$x?>;<br />
  129.               <?php
  130.               $ux_turun=($x_max-$x)/($x_max-$x_min);
  131.               $ux_naik=($x-$x_min)/($x_max-$x_min);
  132.               ?>
  133.               &micro;<sub>permintaan TURUN</sub>(<?=$x?>)=(<?=$x_max?>-<?=$x?>)/<?=($x_max-$x_min)?>=<?=$ux_turun?>;<br />
  134.               &micro;<sub>permintaan NAIK</sub>(<?=$x?>)=(<?=$x?>-<?=$x_min?>)/<?=($x_max-$x_min)?>=<?=$ux_naik?>;<br />
  135.               Persediaan: y=<?=$y?>;<br />
  136.               <?php
  137.               $uy_sedikit=($y_max-$y)/($y_max-$y_min);
  138.               $uy_banyak=($y-$y_min)/($y_max-$y_min);
  139.               ?>              
  140.               &micro;<sub>persediaan SEDIKIT</sub>(<?=$y?>)=(<?=$y_max?>-<?=$y?>)/<?=($y_max-$y_min)?>=<?=$uy_sedikit?>;<br/>
  141.               &micro;<sub>persediaan BANYAK</sub>(<?=$y?>)=(<?=$y?>-<?=$y_min?>)/<?=($y_max-$y_min)?>=<?=$uy_banyak?>;<br/>
  142.             </td>
  143.           </tr>
  144.         </table>
  145.       </fieldset>
  146.       <fieldset>
  147.         <legend>[2] Penerapan Fungsi Implikasi</legend>
  148.         <p>Nilai &alpha;-predikat dan Z dari setiap aturan</p>
  149.         <p><strong>Rule 1 :</strong><em>        IF permintaan TURUN and persediaan BANYAK THEN produksi barang BERKURANG</em><br />
  150.         <?php
  151.         $a_pred1=min($ux_turun,$uy_banyak);
  152.         $z1=$z_max-$a_pred1*($z_max-$z_min);
  153.         ?>
  154.         &alpha;-predikat<sub>1</sub>=&micro;<sub>permintaan TURUN</sub> <big>&cap;</big> &micro;<sub>persediaan BANYAK</sub><br />
  155.           =min(&micro;<sub>permintaan TURUN</sub>(<?=$x?>) <big>&cap;</big> &micro;<sub>persediaan BANYAK</sub>(<?=$y?>))<br />
  156.           =min(<?=$ux_turun?>,<?=$uy_banyak?>)<br />
  157.           =<?=$a_pred1?><br />
  158.         Dari himpunan produksi barang BERKURANG: (<?=$z_max?>-z<sub>1</sub>)/<?=($z_max-$z_min)?>=<?=$a_pred1?><br/>
  159.         diperoleh <strong>z<sub>1</sub></strong>=<?=$z1?>
  160.         </p>
  161.         <p><strong>Rule 2 :</strong><em>IF permintaan TURUN and persediaan SEDIKIT THEN produksi barang BERKURANG</em><br />
  162.         <?php
  163.         $a_pred2=min($ux_turun,$uy_sedikit);
  164.         $z2=$z_max-$a_pred2*($z_max-$z_min);
  165.         ?>
  166.         &alpha;-predikat<sub>2</sub>=&micro;<sub>permintaan TURUN</sub> <big>&cap;</big> &micro;<sub>persediaan SEDIKIT</sub><br />
  167.           =min(&micro;<sub>permintaan TURUN</sub>(<?=$x?>) <big>&cap;</big> &micro;<sub>persediaan SEDIKIT</sub>(<?=$y?>))<br />
  168.           =min(<?=$ux_turun?>,<?=$uy_sedikit?>)<br />
  169.           =<?=$a_pred2?><br />
  170.         Dari himpunan produksi barang BERKURANG: (<?=$z_max?>-z<sub>2</sub>)/<?=($z_max-$z_min)?>=<?=$a_pred2?><br/>
  171.         diperoleh <strong>z<sub>2</sub></strong>=<?=$z2?>
  172.         </p>
  173.         <p><strong>Rule 3 :</strong><em>IF permintaan NAIK and persediaan BANYAK THEN produksi barang BERTAMBAH</em><br />
  174.         <?php
  175.         $a_pred3=min($ux_naik,$uy_banyak);
  176.         $z3=$a_pred3*($z_max-$z_min)-$z_min;
  177.         ?>
  178.         &alpha;-predikat<sub>2</sub>=&micro;<sub>permintaan NAIK</sub> <big>&cap;</big> &micro;<sub>persediaan BANYAK</sub><br />
  179.           =min(&micro;<sub>permintaan NAIK</sub>(<?=$x?>) <big>&cap;</big> &micro;<sub>persediaan BANYAK</sub>(<?=$y?>))<br />
  180.           =min(<?=$ux_naik?>,<?=$uy_banyak?>)<br />
  181.           =<?=$a_pred3?><br />
  182.         Dari himpunan produksi barang BERTAMBAH: (z<sub>3</sub>-<?=$z_min?>)/<?=($z_max-$z_min)?>=<?=$a_pred3?><br/>
  183.         diperoleh <strong>z<sub>3</sub></strong>=<?=$z3?>
  184.         </p>
  185.         <p><strong>Rule 4 :</strong><em>IF permintaan NAIK and persediaan SEDIKIT THEN produksi barang BERTAMBAH</em><br />
  186.         <?php
  187.         $a_pred4=min($ux_naik,$uy_sedikit);
  188.         $z4=$a_pred4*($z_max-$z_min)-$z_min;
  189.         ?>
  190.         &alpha;-predikat<sub>2</sub>=&micro;<sub>permintaan NAIK</sub> <big>&cap;</big> &micro;<sub>persediaan SEDIKIT</sub><br />
  191.           =min(&micro;<sub>permintaan NAIK</sub>(<?=$x?>) <big>&cap;</big> &micro;<sub>persediaan SEDIKIT</sub>(<?=$y?>))<br />
  192.           =min(<?=$ux_naik?>,<?=$uy_sedikit?>)<br />
  193.           =<?=$a_pred4?><br />
  194.         Dari himpunan produksi barang BERTAMBAH: (z<sub>4</sub>-<?=$z_min?>)/<?=($z_max-$z_min)?>=<?=$a_pred4?><br/>
  195.         diperoleh <strong>z<sub>4</sub></strong>=<?=$z4?>
  196.         </p>
  197.       </fieldset>
  198.       <fieldset>
  199.         <legend>Defuzzyfication</legend>
  200.         <?php
  201.         $n=$a_pred1*$z1+$a_pred2*$z2+$a_pred3*$z3+$a_pred4*$z4;
  202.         $d=$a_pred1+$a_pred2+$a_pred3+$a_pred4;
  203.         $z=$n/$d;
  204.         ?>
  205.         <p>Menghitung z akhir dengan merata-rata semua z berbobot</p>
  206.       <p>z=(&alpha;-predikat<sub>1</sub>*z<sub>1</sub>+&alpha;-predikat<sub>2</sub>*z<sub>2</sub>+&alpha;-predikat<sub>3</sub>*z<sub>3</sub>+&alpha;-predikat<sub>4</sub>*z<sub>4</sub>)/(&alpha;-predikat<sub>1</sub>+&alpha;-predikat<sub>2</sub>+&alpha;-predikat<sub>3</sub>+&alpha;-predikat<sub>4</sub>)<br/>
  207.         =(<?=$a_pred1?>*<?=$z1?>+<?=$a_pred2?>*<?=$z2?>+<?=$a_pred3?>*<?=$z3?>+<?=$a_pred4?>*<?=$z4?>)/(<?=$a_pred1?>+<?=$a_pred2?>+<?=$a_pred3?>+<?=$a_pred4?>)<br/>
  208.         =<?=$n?>/<?=$d?><br/>
  209.         =<?=$z?></p>
  210.         <p>Jadi jumlah yang harus diproduksi (<strong>z</strong>) =<strong><?=$z?></strong></p>
  211.       </fieldset>
  212. <?php
  213. }
  214. ?>      
  215.     </div>
  216.   </body>
  217. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement