. * @author Gündüz Can YILMAZ * @copyright 2009 * @version 1.0.0 * @access public * @site http://www.cnylmz.net */ class adaline extends YSA { public $log; public $iterasyonlar; function ogren() { $ornekSayisi=count($this->ogirdiler); $girdiSayisi=count($this->agirliklar); $ogrenme=false; $i=0; while($ogrenme==false) { $ogrenmeDurumu=array(); for($ornek=0;$ornek<$ornekSayisi;$ornek++) { $logtemp=array(); $i++; $NET=0; for($x=0;$x<$girdiSayisi;$x++) { $NET += $this->ogirdiler[$ornek][$x] * $this->agirliklar[$x]; $logtemp['formul'][]='W'.$x.'*X'.$x.''; $logtemp['degerler'][]=$this->agirliklar[$x].' * '.$this->ogirdiler[$ornek][$x]; } $logtemp['formul'][]='Ø'; $logtemp['degerler'][]=$this->esikDegeri; $NET=$NET+$this->esikDegeri; $logtemp['net']=$NET; if($NET >= 0) { $sonuc=1; $logtemp['c1']='NET >= 0 olduğundan Ç1=1'; } else { $sonuc=-1; $logtemp['c1']='NET < 0 olduğundan Ç1=-1'; } if($sonuc == $this->obeklenen[$ornek]) { $ogrenmeDurumu[]=1; $this->log[]=$i.' iterasyon: Ç1 = B1 değişiklik yapılmayacak'; $logtemp['sonuc']='Ç1 = B1 degişiklik yapılmıyor'; } else { $ogrenmeDurumu[]=0; $this->log[]=$i.' iterasyon: Ç1 != B1 ağırlıklar değiştirilecek'; $logtemp['sonuc']='Ç1 != B1 Ağırlıklar Değiştiriliyor'. '
Yeni Ağırlıklar: '; for($x=0;$x<$girdiSayisi;$x++) { $this->agirliklar[$x]=$this->agirliklar[$x] + $this->ogrenmeKatsayisi*($this->obeklenen[$ornek]-$sonuc)*$this->ogirdiler[$ornek][$x]; $logtemp['sonuc'].=' W'.$x.'='.$this->agirliklar[$x]; } $this->esikDegeri=$this->esikDegeri + $this->ogrenmeKatsayisi*($this->obeklenen[$ornek]-$sonuc); $this->log[]='Yeni Ağırlıklar: '.implode(',',$this->agirliklar); } $this->iterasyonlar[]=$logtemp; } if(in_array(0,$ogrenmeDurumu)===false) { $ogrenme=true; $this->log[]='Öğrenme Tamamlandı'; } } } function karar($girisler){ $NET=0; $girdiSayisi=count($girisler); for($x=0;$x<$girdiSayisi;$x++) { $NET += $this->ogirdiler[$ornek][$x] * $this->agirliklar[$x]+ $this->esikDegeri; } return ($NET >= 0) ? 1:0; } function iterasyonhtml() { $itr=count($this->iterasyonlar); echo '
'; for($i=0;$i<$itr;$i++) echo ''.($i+1).'. iterasyon
'; echo'
'; for($i=0;$i<$itr;$i++) { echo ''; flush(); ob_flush(); } echo '
'.$itr.' Adet iterasyonla
ÖĞRENME TAMAMLANDI

Son ağırlıklar: '.implode(',',$this->agirliklar).'
'; } } ?>