Bilgisayar Kavramlarıwww.bilgisayarkavramlari.com |
Yazan : Şadi Evren ŞEKER Din ve felsefede benzer anlamlara gelmesine karşılık bu yazının amacı bilgisayar bilimleri için önemli olan matematikteki ikilik prensibini açıklamaktır. Bir matematikçi bu kavramı basitçe şöyle açıklayabilir “boyalı elimle bir cama ellesem ve elimin izi camda çıksa, camın her iki yönünden gördüğüm görüntü birbirinin ikilidir (dual)”. Bu açıklama aslında kavramın ne [...]
Yazan : Şadi Evren ŞEKER Laplas filitresi bastiçe bir resimdeki kenar hatlarını belirlemek için kullanılır. Burada kenar ile kastedilen objeleri genelde arka plandan ayıran keskin renk ayrılıklarıdır. Keskinleştirme Filitresi (Sharpening Filter) ismi ile de anılan laplas filitresi çalışırken bir pencere kullanır. Örneğim aşağıda bu işlem sırasında kullanılabilecek 3×3 (3*3) boyutlarında bir pencere ve her hücresinde [...]
Yazan : Şadi Evren ŞEKER Resim işlemede kullanılan bir pencere filitreleme yöntemidir. Bu yönteme göre resim üzerinde kayan bir pencere, bu pencere içerisinde kalan sayılar üzerinde işlem yaparak pencerenin ortasındaki imgeciği (pixel) güncellemektedir. Basitçe aşağıdaki şekilde gösterilen 3×3 ‘lük (3*3) bir pencere içersinde kalan sayılar toplanmakta ve ortalama değeri pencerenin ortasında kalan pikselin yeni değeri [...]
Yazan : Şadi Evren ŞEKER DEV-CPP geliştirme ortamında gelen OpenGL kütüphanesi ne yazık ki standart OpenGL ve GLUT fonksiyonlarını desteklememektedir. Bu fonksiyonların yüklenmesi için ilave glut kütüphanesinin kurulması gerekir. Bu işlem için öncelikle aşağıda bulunan bağlantıdan bu kütüphaneyi indiriniz. www.sadievrenseker.com/graf/glut-MingW-DEV-C++.zip Ardından dosyanın içinden çıkan glut.h – C:\Dev-Cpp\include\GL altına glut32.def – C:\Dev-Cpp\lib altına glut32.dll – C:\WINDOWS\system32 [...]
Yazan : Şadi Evren ŞEKER Yapay sinir ağlarında kullanılan ve sistemin hata miktarının belirlenmesinde Hebb kuralı ile birlikte ismi en çok geçen kuraldır. Bu kural arka planda en küçük ortalamalı kareler (least mean square) hesaplaması kullanmaktadır. Sistemin çalışmasını basitçe beklenen değer ile gerçekleşen değer arasındaki farkın birbirine yaklaştırılması olarak düşünebiliriz. En küçük ortalamalı kareler (LMS) [...]
Yazan : Şadi Evren ŞEKER Uyarlanabilir Filitreler (Adaptive Filters) alanında sıkça kullanılan bir hesaplama yöntemidir. Kısaca uyarlanabilir sistemler, biyolojik sistemlerin birer kopyasıdır. Biyolojik organizmalar nasıl kendilerini değişen koşullara uyarlayabiliyorsa, suni olarak üretilen sistemlerin de kendilerini uyarlaması mümkün olabilir. Buna göre sistem çevreden topladığı verileri kendisini uyarlamak (adapte etmek ) için kullanarak kendi kendisini değiştirebilir. Basitçe [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerindeki yapay sinir ağlarının eğitimi sırasında kullanılan bir kuraldır. Hebbian kuramı (Hebbian theory), hebbian kuralı (hebbian rule) isimleri ile de anılmaktadır. Bu kuralı basitçe “Birlikte ateşlenenleri birlikte bağla” şeklinde özetleyebiliriz. Buna göre iki sinir hücresinin birlikte ateşlenmeleri ile ayrı ayrı ateşlenmeleri arasında sistemin eğitimi açısından fark olmaktadır. Basitçe aynı [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde pek çok farklı alanda pekçok farklı hata olmasına karşılık bu yazının amacı yapay sinir ağlarının eğitimi sırasında hatanın nasıl hesaplandığını anlatmayı hedeflemektedir: Gözetimli eğitim sırasında bir hata hesabı yapılırken iki farklı boyut düşünülmelidir. Bunlardan birincisi her sinir hücresini (nöron) bağlayan sinapsis için hesaplanan hata, diğeri ise sistemin tamamının [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde çeşitli istatistik ve hesaplama alanlarında kullanılan bir formüldür. Basitçe üç aşamadan oluşur: Değerlerin karelerini al (square) Kareleri alınan bu değerlerin ortalamasını al (mean) Bu ortalama değerinin kare kökünü al (root) Örneğin aşağıdaki sayılar için bu işlemi deneyelim: -2, 5, -8, 9, -4 kareleri: 4, 25, 64, 81, 16 [...]
Yazan : Şadi Evren ŞEKER Yapay sinir ağları başta olmaküzere bilgisayar bilimlerinin alt dalı olan yapay zekanın çeşitli alanlarında kullanılan öğrenme çeşididir. Diğer alternatifi olan gözetimsiz öğrenme (unsupervised learning)’e göre daha kısa süremesinin en büyük sebebi hata miktarlarının sisteme öğrenme olarak giriyor olmasıdır. Buna göre sistem yaptığı hatalardan ders çıkararak bu hataları öğrenmek için kullanır. [...]
Yazan : Şadi Evren ŞEKER Yapay sinir ağları başta olmaküzere bilgisayar bilimlerinin alt dalı olan yapay zekanın çeşitli alanlarında kullanılan öğrenme çeşididir. Diğer alternatifi olan gözetimli öğrenme (supervised learning)’e göre daha uzun süremesinin en büyük sebebi ilk değerlerinin hedeflenen değerden çok uzak olma ihtimalidir. Aşağıda basit bir akış diyagramı ile gözetimsiz eğitimin nasıl yapılabileceği gösterilmiştir: [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde dosya yönetiminde özetleme (hashing) için kullanılan bir yöntemdir. Bu yönteme göre ekleme sırasında bazı değişiklikler ile yerleştirilen kayıtların arama hızını arttırmak ön plandadır. Özet tabloya (hash table) yerleştirilen bir kayıdın çeşitli durumlarda yeri değiştirilerek okuma zamanının arttırılması hedeflenir. İki ayrı zincir tutmaktadır. Birincil sonda zincirinde (primary probe chain) [...]
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sıralı bir veri kümesi üzerinde arama yapmak için kullanılan yöntemlerden birisidir. Buna göre arama sırasında aşağıdaki formül kullanılarak orta nokta bulunur: orta = sol + ((x-a[sol]) * (sag – sol) ) / ( a[sag] – a[sol]) Yukarıdaki sol ve sag ile ifade edilen değerler arama yapılan alandaki aralığın [...]
Yazan : Şadi Evren ŞEKER Bir ağacın dış düğümlerine ayrı ayrı ulaşılması için geçilmesi gereken yol miktarıdır. Örneğin aşağıdaki ağaç için bu değeri hesaplayalım: yukarıdaki ağaçta kırmızı renkli düğümler iç düğümdür. Siyah renk ile gösterilen düğümleri ise dış düğümlerdir. Buna göre kökten başlandığında ağacın sol tarafında 1 adet dış düğüm vardır ve erişim 1 yolla [...]
Yazan : Şadi Evren ŞEKER Bir ağacın iç düğümlerinin ayrı ayrı ulaşılması için geçilmesi gereken yol miktarıdır. Örneğin aşağıdaki ağaç için bu değeri hesaplayalım: yukarıdaki ağaçta kırmızı renkli düğümler iç düğümdür. Buna göre kökten başlandığında ağacın sol tarafında iç düğüm olmadığı için buraya giden yolların maliyeti 0 olur. Ağacın sağında 2 adet iç düğüm vardır. [...]
Yazan: Şadi Evren ŞEKER Bir ağacın, uçlarında olmayan düğümleridir. Örneğin aşağıdaki grafikte iç düğümler kırmızı, dış düğümler ise siyah renk ile gösterilmiştir:
Yazan : Şadi Evren ŞEKER İçerik 1. B-Ağacının Tanımı 2. Örnek B-Ağacı 3. B-Ağacında Arama 4. B-Ağacına Ekleme 5. B-Ağacından Silme İsminin nereden geldiği (B harfinin) tartışmalı olduğu bu ağaç yapısındaki amaç arama zamanını kısaltmaktır. Buna göre ağacın her düğümünde belirli sayıda anahtar veya kayıt tutularak arama işleminin hızlandırılması öngörülmüştür. Arama hızının artmasına karşılık silme [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı C dilinde dosya işlemlerinin nasıl yapıldığını anlatmaktır. C dilindeki dosya işlemlerinden önce bu dilde yazılan programın çalışacağı işletim sisteminin dosya yapısının iyi bilinmesi gerekmektedir. Bu yazının konusu dışında olan işletim sistemlerinin kullandığı dosya sistemlerini lütfen okuyunuz. C dilinde dosya işlemleri için file.h dosyasının içerilmesi (include) gerekir. #include [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı bilgisayar grafiklerinin en temel konularından birisi olan çokgenlerin OpenGL ile nasıl çizilebildiklerini açıklamaktır. Öncelikle OpenGL kütüphanesindeki fonksiyon isimlerini hatırlayalım: glRect*(x1, y1, x2, y2); i (integer) s (short) f (float) d (double) v (vector) Yukarıdaki fonksiyonda * ile gösterilen yere aşağıdaki değerler gelebilmektedir. Örneğin glRectiv şeklinde bir kullanımın [...]
Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde kullanılan ve çokgenlerin içlerinin doldurulması için kullanılan algoritmadır. Basitçe bir çokgenin (polygon) içinin belirli bir renge boyanacağını düşünelim. Bu durumda çokgenin içerisinin belirlenmesi ve belirlenen bu alanın daha önceden seçilmiş renk ile doldurulması gerekir. void floodFill4 (int x, int y, int fillColor, int interiorColor) { int color; /* [...]
Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde kullanılan ve çokgenlerin içlerinin doldurulması için kullanılan algoritmadır. Basitçe bir çokgenin (polygon) içinin belirli bir renge boyanacağını düşünelim. Bu durumda çokgenin içerisinin belirlenmesi ve belirlenen bu alanın daha önceden seçilmiş renk ile doldurulması gerekir. Örneğin yukarıda verilen çokgenin bir alanına bu algoritma uygulanmıştır. Bu algoritmanın kodu aşağıdaki şekildedir: [...]
Yazan : Şadi Evren ŞEKER Bu yazının amacı bilgisayar grafiklerinde kullanılan çokgenlerin sınırları içerisinde kalınarak nasıl doldurulduğunu açıklamaktır. Bir çokgeni doldurmak en basit anlamda çokgenlerin boyanması sırasında kullanılabilir. Boyama işleminden önce bir poligonun alt poligonlardan oluşması ve basitleştirilmesi durumunu inceleyelim. Örneğin aşağıdaki çokgende birden fazla iç alan bulunmaktadır ve bu alanların farklı renk veya dolgular [...]
Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde 2 boyutlu şekilleri tasvir etmek için kullanılan çokgenler (polygon) aslında bir grup üçgen ile ifade edilebilebilir. Bu konuyu aslında 2 farklı başlık altında inceleyebiliriz. Basitçe çokgenler içbükey (mütekavvis) ve dışbükey (konkav) olarak iki grupta incelenebilir. Aşağıda bir içbükey (mütekavvis) çokgenin basit bir adımla nasıl bir üçgen ve bir [...]
Yazan : Şadi Evren ŞEKER Yapay sinir ağlarında, nöronlar arasındaki bağlantıların (sinapsis) ağırlıklarını göstermek amacıyla kullanılırlar. örneğin 4 nöronlu bir hopfield ağını ele alalım. Bu ağın eğitim öncesi bütün sinapsislerinin değerinin 0 olması beklenir. Yani basitçe 4 nöronu bulunan hopfield ağında her nöronun diğerlerine bağlı olması durumunda toplam 16 (4 x 4) sinapsis bağlantısından söz [...]
Yazan: Şadi Evren ŞEKER Aşağıda örnek bir hopfield ağı verilmiştir. Yukarıdaki bu ağda 4 nöron ve 12 adet bağlantı görülmektedir. Bu ağın üzerindeki bağlantılar aşağıdaki tablo ile gösterilebilir. Neuron 1 (N1) Neuron 2 (N2) Neuron 3 (N3) Neuron 4 (N4) Neuron 1 (N1) (N/A) N2->N1 N3->N1 N4->N1 Neuron 2 (N2) N1->N2 (N/A) N3->N2 N4->N2 Neuron [...]