:::: MENU ::::

Makale yazmak neden önemli?

Ufak veya büyük, yaptığınız araştırmanın anlamlı olabilmesi için yayınlanmış olması gerekir. Yayınlanmamış bir çalışma hiç yapılmamış gibidir. Bilim birikimseldir. Kimisi küçük bir katkı yaparken, kimisi ciddi katkılar yapabilir. Bu noktada bir bina inşaatı örneği verecek olursak, kimisi kat çıkar, kimisi tuğla örer, kimi sıva yapar, kimisi boya yapar, kimisi alçı çeker, kimisi boya yapar, kimisi o duvara asılan tabloyu yapar, kimisi o tablodaki resmin içerisindeki bir renktir 🙂 diye daha fazla uzatmadan keselim.

Bugün Bezier eğrisini araştırırken, Bezier’in bir isim olduğunu anlamakla beraber, bulunma sürecinin hikayesi beni bu yazıyı yazmaya itti.

Silindir parçalarının kesişimi üzerinde incelemeler yapan ve Citroen’de çalışan Paul de Faget de Casteljau ve Renault’da çalışan Pierre Bézier hemen hemen eşzamanlı olarak Bezier eğrisini keşfetmiş ve bugün Bezier eğrisi denmesinin sebebi, konuyla ilgili makaleyi ilk onun yazmış olmasıdır.

Özellikle günümüzde bilimsel sürece bir kat çıkarak katkı sağlayamayan ben ve benim gibiler için en önemli mesele, elde ettikleri sonuçları bir an önce yayınlamaktır. Yayınlamadığımız her saniye aleyhimize işleyen bir süreçtir.

Başarılar.


Python’da döngü ve karar verme işlemleri nasıl yapılır?

Python’da döngü ve karar verme işlemleri nasıl yapılır?

True cevabını döndürmektedir.

Basit bir if-else yapısı aşağıda verilmiştir:

Derleyici yorumlama işlemini girintilere göre yapmaktadır.

Python’da if-elif-else komutu nasıl kullanılır?

Metinsel bazda kıyaslama da çok basit bir şekilde yapılmaktadır.

Yanlış değerini döndürecektir.

Veri yapısı içerisinde eleman arama işlemi in ve not in komutlarıyla yapılır.

İlkinde dize içerisinde a var diyoruz ? Doğru diyor.
İkincisinde dize içerisinde a yok diyoruz ? Yanlış diyor.

Mantıksal işlemler and, or, not yazılarak yapılır.

Python’da while döngüsü nasıl kullanılır?

1’den 10’a kadar olan sayıları ekrana yazdıralım:

Çıktıları ekrana yan yana yazmak için:

kullanılır. ” ” arasına istediğimiz karakterleri ekleyebiliriz.

4’den 29’a 5’er 5’er ekrana yazdıralım:

10’dan geriye 1’er 1’er 1’e kadar saydıralım:

1’den 10’a kadar olan sayıların toplamı:

Kaynaklar:

1- http://www.veridefteri.com/2017/12/16/python-programlamaya-giris-secim-yapma-mantik-islemleri-karsilastirmalar/
2- http://www.veridefteri.com/2017/12/20/python-programlamaya-giris-donguler/


Python’a Giriş

Uzun süredir Python kullanımı temel düzeyde öğrenmeyi düşünüyordum. Söz diziminin kolaylığını yıllardır duyduğum Python’u asıl seçme nedenim açık kaynak kodlu ve ücretsiz olmasıdır.

Veri Defteri‘ndeki Python derslerini okuyarak sürece başladım. Bu sayfada ise yazmış olduğum kodlar ve hatırlatma notlarına yer vermeyi düşünüyorum.

Karekök almak için kütüphane çağırma kısmını sevmedim:

Kütüphane çağırmadan:

şeklinde karekök alınabilirmiş 🙂

Matematik işlemleri direk olarak yapılabiliyor:

Yuvarlama işlemi:

Üs alma işlemi:

Mutlak değer işlemi:

Değişken tanımlama işleminde tip belirtilmiyor. Aynı tip değişkenlerle yapılan işlemlerin sonucu aynı tiptir.

kodunun çıktısı:

şeklindedir.

Çıktı:

Çoklu atama yapmak mümkün olduğundan ara değişken kullanmadan değiş tokuş yapılabilir.

Değişken isimlerinde herhangi Unicode karakterleri kullanılabilir.
Not:Ben çok tercih etmiyorum.

Python’da öncelik sırası nasıldır?

Aynı ifade içinde önce üs alma, sonra çarpma, bölme ve kalan bulma işlemleri, sonra da toplama ve çıkarma işlemi yapılır. Aynı öncelik sınıfında bulunan işlemler, soldan sağa sırayla yapılır. Öncelik sırasını değiştirmek için parantez kullanılır.

14,20 sonucunu verecektir.

Python’da dizeler nasıl tanımlanır ve kullanılır?

Çıktı:

Farklı tipteki değişkenleri çokuzlarda (tuple) aşağıdaki şekilde saklarız:

Not: tuple’ı ben ögeli olarak çeviriyordum. Çokuz ifadesini Kaan Öztürk kullanmış 🙂

Son elemanın birinci elemanına erişmek için:

Python’da listeler nasıl tanımlanır ve kullanılır?

Çıktı:

Bazı oynamalar yapalım:

Çıktı:

Python’da sözlük veri yapısı nasıl kullanılır?

‘merhaba’ çıktısını verir.

Silmek için :

del d[“isim”] komutu kullanılabilir. hash listesi yapılırken faydalı bir kullanımdır.

Kaynaklar:

1- http://www.veridefteri.com/2017/12/08/temel-python-programlama-ilk-adimlar/
2- http://www.veridefteri.com/2017/12/11/python-programlamaya-giris-sayilar-aritmetik-temel-veri-yapilari/


The Ant Lion Optimizer

“The Ant Lion Optimizer” başlıklı çalışma Seyedali Mirjalili tarafından yapılmış olup Advances in Engineering Software 83 (2015): 80-98.sayfaları arasında yayınlanmıştır.

The Ant Lion Optimizer (ALO) Karınca Aslanı Optimizasyonu

Bu alanda makale yazarken kullanılması gereken sihirli kelimeler:
-exploration
-local optima avoidance
-exploitation
-convergence

Karınca aslanı böceği karıncaları avlayarak yaşamını sürdürmektedir. Bu algoritma karınca aslanı böceği’nin avlanma şeklini modellemiştir.

Algoritmada karıncalar random walk şeklinde bir yürüyüş yapar.

500 iterasyon boyunca 3 farklı random walk davranışı yukarıda görülmektedir. Birinde yükseliş, birinde alçalış, birinde ise karmaşık bir hareket vardır.

İterasyonlar devam ederken rastgele yürüyüşün menzili daraltılır.
Bir karınca, karınca aslanından daha iyi amaç fonksiyonu değerine sahip olduğu anda yakalanmış sayılır ve karınca aslanı avının yerini alır.

Random walk, alt ve üst sınırları belirli uzayda kullanılmadığından min-max normalizasyonu ile kullanılması gerekmektedir.

x, random walk ile elde ettiğimiz vektör olsun.

Yukarıdaki komut ile x vektörünü -100,+100 aralığına normalize ediyoruz.

Karınca aslanının kurduğu tuzaklardan etkilenme işini aşağıdaki şekilde yapmaktadır:

min(Karinca(i,t))=KarincaAslani(j,t)+Min(Karincalar ve KarincaAslanlari)
t.iterasyondaki i.karıncanın en küçük değeri = t.iterasyondaki j.karınca aslanının değeri + en küçük değer
max(Karinca(i,t))=KarincaAslani(j,t)+Max(Karincalar ve KarincaAslanlari)
t.iterasyondaki i.karıncanın en büyük değeri = t.iterasyondaki j.karınca aslanının değeri + en büyük değer

Daha sonra karınca aslanlarına rulet tekerleği seçimi uygulanarak bir tanesi seçilir.

Min(Karincalar ve KarincaAslanlari) ve Max(Karincalar ve KarincaAslanlari) değerleri belirli bir oranda giderek azaltılmaktadır.

oran=10^w*t/T
t=mevcut iterasyon
T=toplam iterasyon
w iterasyona bağlı sabit
(w = 2 when t > 0.1T, w = 3 when t > 0.5T, w = 4 when t > 0.75T, w = 5 when t > 0.9T, and w = 6 when t > 0.95T).

w sabiti sömürünün doğruluğunu ayarlayabilir.

İterasyonlar sürecinde sömürü için süreç yukarıdaki gibidir.

Bu aşamadan sonra eğer karınca, karıncaaslanından daha iyi bir konumdaysa ilgili karınca, karıncaaslanı olur.

Algoritmada elitizm, en iyi karıncaaslanının konumunun tutulmasıyla sağlanır.

Karınca(i)=(Random(KarıncaAslanı)+Random(Elit))/2

Karıncalar, her iterasyonda rulet ile seçilmiş bir karıncaaslanının random walk yapmış hali ile elit karıncaaslanının randomwalk yapmış halinin toplamının yarısını alarak konumlarını günceller.

ALO’nun sözde kodu aşağıdadır:

Çalışmada iddia edilen bazı kazanımlar:
Rulet seçimi keşfi artırmıştır.
Rastgele yürüyüş keşfi artırmıştır.
Popülasyon tabanlı algoritmalar doğal olarak lokal optimumlardan kaçma kabiliyetine sahiptir.
Rastgele yürüyüş ile popülasyonun çeşitlenmesi sağlanmıştır.
İterasyona bağlı olarak daraltma (Adaptive shrinking) ile sömürü güçlendirilmiştir.
Karıncaların hareketi uyarlanabilir bir şekilde azaltılarak yakınsama hızı artırılmıştır.
En iyi karıncaaslanının konumu iterasyonlar sürecinde kaydedilerek umut verici bölgelerin taranması sağlanmıştır.
En iyi karıncaaslanı diğer bireylerinde daha iyi konumlara hareket etmesini sağlar.

The-ant-lion-optimizer


Sayfalar:1234567...114