Algoritmalarda Böl ve Yönet (Divide-and-Conquer) Yaklaşımı

0
185

Algoritmalarda Böl ve Yönet (Divide-and-Conquer) Yaklaşımı

Algoritmalarda Böl ve Yönet (Divide-and-Conquer) Yaklaşımı
Algoritmalarda Böl ve Yönet (Divide-and-Conquer) Yaklaşımı

Böl ve yönet yaklaşımı bilgisayar biliminde önemli bir yere sahiptir; büyükçe denilebilecek problemler, özellikleri aynı kalmak koşuluyla, daha küçük parçalara ayrılıp küçük problemler haline getirilir ve kolayca çözülür. Örneğin elemanları rastgele yerleştirilmiş elemanlı bir dizi, bölüne bölüne iki elemanlı hale getirilirse sıralanması kolayca yapılabilir: önce ikiye bölünür, dolayısıyla elemanlı iki parça elde edilir; parçalar yeteri kadar küçülmemişse yeniden iki bölünür ve büyüklükte dört parça edilir; yeteri kadar küçülmemişse bölme işlemi tekrarlanarak yeteri kadar küçük hale getirilir.
Birçok problem doğası gereği bölünmeye çok yatkındır; dolayısıyla böylesi problemlerin çözümü böl ve yönet yaklaşımına çok uygun düşer. Örneğin sıralama/arama algoritmalarında, ağaç veri modelinde, bazı matris işlemlerinde böl ve yönet algoritması çözümün görülmesini/sağlanmasını kolaylaştırır.

Network Yazılımı/Programlaması

Network yazılımı, ağ üzerindeki farklı bilgisayarların veya aynı bilgisayar üzerindeki farklı uygulamaların birbirleriyle etkileşim içerisinde karşılıklı olarak çalışmasını ve veri alış-verişinde bulunmasını sağlayan bir yazılım çeşidir. İletişimde bulunacak iki program
arasında, önce, sanal bağlantı kurulur ve programlar arası sanal bir iletişim kanalı oluşturulur. Bu aşamadan sonra, programlar, sanki yerel bir kaynağa erişiyorlarmış gibi veri aktarımında bulunabilir. Network yazılımı, kullanılan protokol kümesine çok bağlıdır; doğrudan o protokol kümesinin sunduğu yapı ve hizmetler üzerinden yapılır. Bir protokol kümesi için geliştirilen bir yazılım bir başka protokol kümesi altında çalışmaz. TCP/IP, NETBUI, NETWARE, AppleTalk bilinen ağ protokol kümeleri olup, uygulamada, Internet’in de protokol kümesi olan TCP/IP yaygın olarak kullanılmaktadır.
Ağ programlama ise, uygulamaya dönük programların bir ağ ortamı üzerinden haberleşerek karşılıklı etkileşimde bulunmasını sağlayan programlama şeklidir. Burada temel gereksinim, aynı uygulamaya ait, ancak farklı sistemler üzerinde koşan program parçalarının hatadan arınmış olarak karşılıklı haberleşmelerini, etkileşimde bulunmalarını sağlamaktır. Ağ programlaması, ağın protokol kümesine ve mimarisine çok bağlıdır; bir program TCP/IP için geliştirilmişse, ancak ve ancak TCP/IP ağlarda çalışır. Dolayısıyla program parçalarının koştuğu sistemler üzerinde TCP/IP protokol kümesi yüklü olmalıdır

Kıyaslama (Benchmarking)

Kıyaslama, aynı işi yapan iki programın veya yazılımın evrensel anlamda örnek veriler üzerinde çalıştırılarak başarımlarını karşılaştırmaktır; kıyaslama donanım için de yapılabilir. Örneğin iki tane bilgisayara, önceden tanımlanmış işler belirli sayıda yaptırılır ve bir başarım sayısı elde edilir; bu iki sayı kıyaslanarak daha büyük olanın daha başarımlı olduğu belirlenir. Kıyaslamada önemli unsurlar, örnek verinin herkes tarafından bilinen ve kolayca elde edilen evrensel düzeyde olmasıdır ki, herkes kendi sistemini kıyaslayabilsin. Kıyaslama verisi, çok özel bir durum için değilse, olası tüm durumları yeteri kadar deneyecek özellikte olmalıdır; özel bir durum için hazırlanmış ise, verinin özelliği açıkça belirtilmelidir.

Kaynak:Ahmet Yesevi Üniversitesi Algoritmalar Ders Notları

CEVAP VER

Time limit is exhausted. Please reload CAPTCHA.