Forum: D Programlama Dili RSS
Girişten tek tek sayı okumak
Sayfa:  önceki  1  2 
acehreli (Moderatör) #16
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 7754
erdem:
iki tane ağaç oluşuyor

O zaman benim heyecanım yersizmiş. :) Ben şimdilik bize en yavaş işleyen algoritmayı gösteriyorsun sanmıştım. Ağaç kullanıyorsa hızlıdır, değil mi?

Ali
erdem (Moderatör) #17
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Evet haklısınız :)

Hatta ağaç kullanan yöntemin de hızlısı sanırım. Örneğin iki tane ağacı birbirine bağlayacaksa her zaman küçük ağacın kökünü büyük ağacın köküne bağlıyor.

Bunu ben de ilk planda farkedememiştim. Ama iki tane dizinin değerlerine bakarak çalışma mantığını anlamıştım.

Bir de gene pratik uygulamalarına örnek verecek olursak Fizikte iletkenliğin, geçirgenliğin tespitini çok kolayca yapabiliyoruz.

Buradaki  ilk resimde beyazlar geçirgen olan kısımları gösteriyor. Eğer üstte ve altta beyazlar arasında bir bağlantı varsa geçirgen olmuş oluyor. Bu durumda ilk resim geçirgen, ikincisi değil.

[Resim: http://www.erdem.tk/resim/resim/iletkenlik.png]

Bir de Monte Carlo yöntemi var. N x N boyutlarında bir ızgara oluşturuyoruz. Beyazlar açık, siyahlar kapalı noktaları gösteriyor. Sonra alt ve üst arasında bir bağlantı sağlanıncaya kadar rastgele noktaları açıyoruz. Böylece beyazlardan oluşan yukarıdan aşağıya rastgele bir yol yapmış oluyoruz.

[Resim: http://www.erdem.tk/resim/resim/montecarlo.png]
Bu mesaj 2 defa değişti; son değiştiren: erdem; zaman: 2016-02-18, 22:31.
Avatar
Salih Dinçer #18
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #16
Ben hala bu algoritmanın gerçek hayatta (pratikte) ne işe yarayacağını anlayamadım. Tamam, elektronikte baskılı devre hazırlamada (PCB routing) kullanılabilir gibi görünüyor; hoş, önceki sayfadaki sadeleştirilmemiş ve sadeleştirilmiş siyah/beyaz kutular (hatta bunlar aynı!) arasındaki farkı da göremedim ya... :blush:

Neyse, bunlar benim anlayışımın kıt oluşundan kaynaklanmakta. Bana belki üç yaşındaki çocuğun anlayabileceği dilde anlatabilirtsiniz...:)

"Bak yavrum, sobanın çevresinden geçersen belki bu vakit alacak ama bil ki hiç bir yerin cız olmayacak! O yüzden ortasından geçme. Ortada kuyu var yandan geç...:D"

acehreli:
erdem:
iki tane ağaç oluşuyor

O zaman benim heyecanım yersizmiş. :) Ben şimdilik bize en yavaş işleyen algoritmayı gösteriyorsun sanmıştım. Ağaç kullanıyorsa hızlıdır, değil mi?
Bağlı liste (linked) ile dizilerin (vectors) hız olarak bir esprisi olmadığını tartıştığımızı hatırlıyorum. Hatta bağlı liste duruma göre yavaş kaldığından söz etmiştik. Yanılıyor muyum?
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj Salih Dinçer tarafından değiştirildi; zaman: 2012-09-20, 23:54.
acehreli (Moderatör) #19
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Salih Dinçer:
Ben hala bu algoritmanın gerçek hayatta (pratikte) ne işe yarayacağını anlayamadım.

Baskılı devre üzerine lehim yerleştiren bir robot için program yazıyorsun. Giren bilgiler, hangi iki noktanın bağlı olması gerektiğini söylüyorlar. Örneğin 3,4 geldiğinde "3 ile 4 arasında elektriksel bir bağlantı olmalı" anlamına geliyor.

Senin işin, o noktalar arasında mevcuk bağlantı yoksa robota lehim yerleştirtmek, uzun bir yoldan da olsa bağlantı zaten var ise lehim yerleştirmemek.

Pratikte başka bir oyunda da kullanılabilir: Bombanın düştüğü noktanın rastladığı adadaki bütün evler yıkılacak. Siyah beyazlı resimler buna benziyor: Beyazlardan oluşan adalar gibi.

acehreli:
erdem:
iki tane ağaç oluşuyor

O zaman benim heyecanım yersizmiş. :) Ben şimdilik bize en yavaş işleyen algoritmayı gösteriyorsun sanmıştım. Ağaç kullanıyorsa hızlıdır, değil mi?
Bağlı liste (linked) ile dizilerin (vectors) hız olarak bir esprisi olmadığını tartıştığımızı hatırlıyorum.

Bağlı liste düğümlerinin belleğin her tarafında bulunmaları nedeniyle mikroişlemcinin ara belleğinin dışına çıkmak zorunda kaldıkları için dizilerden daha yavaş kalacaklarını konuşmuştuk.

Hatta bağlı liste duruma göre yavaş kaldığından söz etmiştik.

Evet.

Ağaç O(log N) karmaşıklıkta arama yapan bir veri yapısı olduğundan bu problem için gayet iyi. Ben onu demek istedim.

Ali
erdem (Moderatör) #20
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #17
erdem on 2012-09-20, 08:53:
Bir de Monte Carlo yöntemi var. N x N boyutlarında bir ızgara oluşturuyoruz. Beyazlar açık, siyahlar kapalı noktaları gösteriyor. Sonra alt ve üst arasında bir bağlantı sağlanıncaya kadar rastgele noktaları açıyoruz. Böylece beyazlardan oluşan yukarıdan aşağıya rastgele bir yol yapmış oluyoruz.

Çok ilginç aslında Monte Carlo bir integral alma yöntemiymiş.

Örneğin bizden pi sayısını hesaplamamızı istiyorlar.

[Resim: http://farm8.staticflickr.com/7433/10711729515_d3a462c363_o.png]

Birim çemberin alanının pi olduğunu ve çeyreğinin alanının da pi/4 olduğunu bildiğimiz için çeyrek çemberi kullanıyoruz.

Burada rastgele noktalar koyuyoruz. Daha sonra çemberin içine düşen noktalarla toplam noktaların oranını buluyoruz. Örneğin 10 nokta koymuşsak ve bunlardan 9 tanesi çemberin içine düştüyse

çemberin içine düşen nokta / toplam nokta = 0.9

olmuş oluyor.

Peki noktanın çemberin içinde olduğunu nasıl anlıyoruz.

(x,y) noktamız olsun. Çemberin denklemi x^2 + y^2 idi hatırlayacağınız üzere. Yarıçapı 1 olan çember kullandığımız için x^2+y^2 <= 1 ise nokta çemberin içinde değilse dışında oluyor.

Bu şekilde örneğin 1.000.000 kadar nokta oluşturduğumuzda çemberin içine dışına düşen noktaların oranı 0.786054 gibi bir rakam çıkıyor. Bunu dörtle çarptığımızda

pi = 4 * 0.786054 = 3.144216 gibi bir rakam çıkıyor.

Bahsettiğim gibi Monte Carlo bir tümlev alma yöntemi olduğu için tümlevi alınabilen tüm işlevlerle kullanabiliyoruz. Diğer yöntemlerle kolayla tümlevi alınamayan, ya da hesaplanması güç katlı tümlev hesabında Monte Carlo integrali kullanılıyor.
acehreli (Moderatör) #21
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Çok hoş. :)

Ali
erdem (Moderatör) #22
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Daha önce bahsettiğimiz sızıntı algoritmasını kodladım. Hatta Coursera derslerinin tek başına kitabı okumaktan daha ilginç olduğunu söyleyebilirim.

Ödevlerden bir tanesi bu sızıntı algoritmasını kodlamaktı. Görsel olarak algoritmanın nasıl çalıştığını görebileceğiniz bir kod yazmışlar.

Daha sonra Monte Carlo benzetim yöntemi kullanarak akış eşiğini, akış eşiğinin standart sapmasını hesaplamanızı istiyorlar. Pi sayısının hesabına benzer şekilde bu seferde açık kare sayısının toplam kare sayısına oranını buluyoruz. Örneğin 400 kare varsa ve 204 kare açıldığında akış gerçekleştiyse 204/400 akış eşiği 0.51 oluyor.

https://www.youtube.com/watch?v=DsfMcQMwPcI

Bir de programın kullandığı metin dosyalarından ilginç resimler oluşturmuşlar :)

[Resim: http://www.erdem.tk/resim/resim/jerry47.png]

[Resim: http://www.erdem.tk/resim/resim/greeting57.png]
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2 
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-21, 11:22:51 (UTC -08:00)