27 Nisan 2013 Cumartesi

Konferans: Skylar Tibbits: Kendi kendini oluşturan şeyler yapabilir miyiz?


MIT araştırmacısı Skylar Tibbits kendiliğinden kurulma konusu üzerine çalışmalar yapıyor -- Bu fikir, birşeyleri yapmak (sandalye yapmak veya gökdelen dikmek gibi) yerine, bir DNA sarmalının kendini sardığı gibi, kendi kendini kurabilen şeyler oluşturmak temeline dayalıdır. Bu daha tam olarak gelişmemiş ancak oldukça önemli bir kavramdır. Burada Tibbits, henüz laboratuvar çalışmaları aşamasında olan fakat kendiliğinden kurulma kavramının geleceği hakkında bize ipuçları veren üç projeden bahsediyor.

- üretim sektörünün geleceğinden bahsetmek istiyorum.
Ben, pek yakında binalar ve makinelerin
kendiliğinden kurulup kopyalanacaklarına ve
kendi kendilerini onaracaklarına inanıyorum.

- Bu da bir anlamda bir tür kendini çoğaltma yöntemine sahip olduğumuzu gösteriyor.
Ben bunu kendi kendine çoğalma diye adlandırıyorum
çünkü yapı, ilki ile tamamen aynı özellikleri barındırıyor.

- Şahsen, bunun bize gelecekte
fiziki yapıların, binaların ve makinelerin kendi kendine kurulumları, çoğalmaları ve onarımları ile ilgili
yeni olanaklar sağlayacağını düşünüyorum.

Konferansı İzle

26 Nisan 2013 Cuma

Hayat Oyunu - Yazılım ve Felsefe


Hayat Oyunu

Hayat Oyunu üzerine bir araştırma yazısı


Bu yazılarda anlatılan Hayat Oyunu programı kolayca programlanabilmektedir. Çünkü oyunu etkileyen sadece birkaç yasa vardır. Ve kolayca yazılımsal olarak ifade edilebilir.

Başlangıçta verilen birkaç basit yasa zaman içinde oldukça şaşırtıcı desenler oluşmasına neden oluyor. Çeşitli organizasyonlar oluşuyor. Planörler görünüyor. Yaşamsılar gelişiyor. Hayat Oyunu programı çalıştırılmayı sürdürüldüğünde ne kadar ileri gidebilir. Yaşamsılar ne kadar kompleksleşebilir. Elbette soyut matematiksel dünyalarında!

Daha somut bir örneği düşünelim. Evrenimiz fizikseldir. Ama O da matematiksel yasalara göre çalışır. Birkaç basit yasa zaman geçtikçe kendini kopyalayan yapıların oluşmasına neden olabilir. Onlar da yaşamı oluşturabilir. Ama her birkaç yasanın gerçekten yaşam oluşturabileceği anlamına gelir mi. Eğer öyle olsaydı yaşamın uzayda çok yaygın olması gerekirdi. Sonuçta her gezegende en az birkaç yasa mutlaka vardır. Ama şimdilik Dünya'nın dışında pek neşe yok görünüyor.

Hayat Oyunu'nun yasaları, temel fizik yasalarına inmek yerine, DNA'yı oluşturan 4 nükleik asidin birleşmelerini sağlayan yasalara benzetilebilir (mi) – benzetenler var. 4 nükleik asidin zincirlerinin oluşturduğu canlılık çeşitliliğini sağlayabilir mi. Ama soyut evrenlerinde önce fizik yasaları ifade edilmeden DNA benzeri yasaları oluşabilir mi. Canlıyı tanımlayan en temel yasa kendini kopyalamasıdır. Günümüzde DNA'ya benzeyen şeyleri simule edebilecek daha gelişmiş yazılımlar geliştirilebilir. Kendini kopyalayan basit bir canlının benzetimi yapılabilir. Bu yazılımın çalıştırılarak zamanla daha şaşırtıcı örgülere rastlanabilir. Çok çeşitli yaşamsılar fark edilebilir.

“Gosper devasa boyutlarda bir tahta üzerinde belki de birkaç sezgisel sıçramayla
organizasyonların karmaşık durumlarının anlaşılabileceğini, bilinç
ve özgür iradeleri olan, kendi evrenlerini ve onun fiziğini düşünebilen,
hatta bunların tümünü yaratan bir Tanrı olup olmadığı konusunda fikir
yürüten, O'nunla iletişim kurmaya çabalayan, tüm çabaların bir değeri ya
da anlamı olup olmayacağı konusunda varsayımlarda bulunan vs. 'yaratıkların'
bulunabileceğini düşünüyor.”

Douglas R. Hofstadter ve Daniel C. Dennett Yaşam Oyunu hakkındaki bu sözleri Bill Gosper'den alıntılamaktadır.

Hayat Oyunu hakkında kesin yargılara varmak için acele edilemez. Eğlenceli bir düşünce deneyidir.


Hayat Oyunu'nun nasıl çalıştığını görmek için Golly'i indirebilirsiniz

25 Nisan 2013 Perşembe

Pisagor Teoremi - Algoritma


Dim Genişlik As Double
Dim Yükseklik As Double
Dim Birim As Double
Dim Hipotenüs As Double

Birim = 1
Hipotenüs = 5

Genişlik = 0
Do
    Genişlik = Genişlik + Birim
    Yükseklik = 0
    Do
        Yükseklik = Yükseklik + Birim
        txtÖlçülen.Text = Genişlik & " " & Yükseklik
        If Genişlik ^ 2 + Yükseklik ^ 2 = Hipotenüs ^ 2 Then
            txtGUyanlar.Text = txtGUyanlar.Text & " " & CStr(Genişlik)
            txtYUyanlar.Text = txtYUyanlar.Text & " " & CStr(Yükseklik)
        End If
        DoEvents
    Loop Until Yükseklik >= Hipotenüs
Loop Until Genişlik >= Hipotenüs



Bir şeyin ölçümünü yapmak Pisagor teorimini kullanmıştım. Başlangıçta Hipotenüs değişkenine 5, Birim değişkenine 1 verdiğimizde algoritma gayet güzel işliyor. Genişlik'i 4, Yükseklik'i 3 buluyor – ve tam tersini. Birim'e 0.01 değerini de versek aynı sonuca ulaşacağını düşünebiliriz. Sadece daha çok sayıyı ölçeceğinden daha uzun sürecektir. Ama iş burada ilginçleşiyor. Garip bir şekilde Genişlik'in değeri virgülden sonra en fazla 2 haneli sayılar olması gerekirken “2,1234...” diye gidebiliyor. Bağıntıyı sağlayan 3,4 rakamlarını da bulamıyor. Birim'e 0.01 yerine 0.5 verirsek algoritma yine beklendiği gibi çalışıp doğru sonuçlara ulaşabiliyor.

Visual Basic'i yıllardır kullanırım. Daha önce Visual Basic'in mantık hatası yaptığını hatırlamıyorum.:-) Bu algoritma daha büyük bir yazılımın parçası olabilirdi. O yazılım bu algoritmadan dolayı yanlış hesap yapabilirdi. Gerektiği gibi çalışmamasına neden olabilirdi. Yazılımcıları sorunun nereden kaynaklandığını uzun süre fark edemeyebilirlerdi. Çünkü bu basit algoritma ilk bakışta gayet normal görünmektedir. Hatalı çalışacağına dair bir şey belli etmemektedir. Dolayısıyla sorunun aranacağı ilk yer olmayacaktır. :-)

Visual Basic yazılımcıları algoritmayı denemek isterlerse diye buraya aldım. Visual Basic'in bu mantık hatasını yapmasına neyin neden olduğu merak konusudur. Ne tür bir iç işleyişin sonucunda mantık hatası yapıyormuş gibi görünüyor! :-)