P ve NP Karmasikligi

P-NP Problemi

P-NP Problemi (P versus NP olarak da gecer) Matematik ve Bilgisayar Bilimlerinde halen cözülemeyen bir Problemdir. Özellikle Karmasiklik Teorisinde.

Asil merak edilen sey ise P ve NP arasinda ki karsilikli iliskinin ne oldugudur aslinda. 1970li yillarda birbirinden bagimsiz calisan Stephan Cook ve Leonid Levin tarafindan ilk defa üzerine gidilmistir.

P-NP Problemi Bilgisayar Biliminde Clay Mathematics Institute tarafindan Millenium Problemlerinden biri olan ve halen cözülemeyen bir Sorudur.

P ve NP

Karmasiklik Teorisi sorunu ortaya koymakla beraber Bilgisyarlar tarafindan da hesaplanabilindigini ….

https://de.wikipedia.org/wiki/P-NP-Problem#P_und_NP

P

P, Karmasiklik Teorisinde Problem kategorilerinde Karmasiklik Sinifidir.

Bu Sinifin icindeki her Problem icin bir deterministik Turing Makinesi mevcuttur. (Bir Algoritma ile yada Programlama ile bu Problemi cözen ve bir n^k seklinde bir Polinom (k bir sabittir)) ile Zaman Karmasikligi ile cözen ve Durumu n uzunlugunda sinirlandirir.

P sinifinda ki Problemler böylelikle deterministik ve Polinomial zamanda cözülebilirler.

Örnek olarak vermek gerekirse: Siralama Problemleri ve Devre Analiz Problemleri.

NP

Karmasilik Teorisi deterministik Turing Makinesinden baska Makinelerle de tanimlanmaktadir.
Ein önemlilerinden biri deterministik olmayan Turing Makineleridir, deterministik olanlarin gelistirilmis hali gibi.

Deterministik olmayan Turing Makineleri her Zaman diliminde potansiyel olarak daha cok Özellige sahiptir.
Hesaplamalari , Islem adimlari tam olarak takip edilemezdirler.

Bu yüzden teorik bir Modell olarak kabul edilir. Suan ki Bilgisayarlarda kullanilmamaktadir.

NP Karmasiklik Sinifi tam olarak deterministik olmayan Turingmakinalarini Polinomiel Zamanda cözülebilen Problemleri kapsar.

P Sinifinda ki Problemler deterministik olamayan Polinomial Zamanda da cözülebildiklerinden, P ayni zamanda NP sinifinin bir Altkümesidir.

P_NP_Karmasiklik

 

Ruby on Rails ile Blog Uygulamasi Gelistirme

Bu Yazmiz da hemen bir Blog Uygulamasinin nasil kurulacagini anlatacagim.

$ rails new blog

Ile hemen Rails Kütüphanesinden yeni bir Blog olusturmak istedigimizi terminale aktariyoruz.

jquery-rails yükle degilse onu da

gem install jquery-rails

diyerek yükleyelim.

cd blog

diyerek Blog klasörümüze giriyoruz.

 

Ruby on Rails Ders 1

#1 Ruby Versiyonunu sorgulama kodu:

basbayandur:~ $ ruby -v 
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

#2 sqlite3 in yüklü olup olmadigini, degilse yükleme kodu:

basbayandur: ~ $ sqlite3 --version
basbayandur: ~ $ sudo apt-get install sqlite3

#3 $ sqlite3 –version komutu ile tekrar versiyon sorgulamasi yapiyoruz.

basbayandur: ~ $ sqlite3 --version  
3.8.2 2013-12-06 14:53:30 27392118af4c38c5203a04b8013e1afdb1cebd0d

#4 Sistemimizde Ruby hali hazirda yüklü, lakin Rails Kütüphanesini de eklememiz gerekiyor. (Kütüphane dedim, dogru terim mi bendebilmiyorum)

basbayandur: ~ $ gem install rails

Bu islemi koding.com da uygulamk icin de root haklarina sahip olmaniz gerekiyor. bunun icin sudo -i yazarak yeni bir root sifresi olusturabilirsiniz.

root: /home/basbayandur $ gem install rails
Fetching: i18n-0.7.0.gem (100%)
Fetching: json-1.8.3.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.
 
        /usr/bin/ruby1.9.1 extconf.rb
creating Makefile
 
make
sh: 1: make: not found
 
 
Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.3 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/json-1.8.3/ext/json/ext/generator/gem_make.out
root: /home/basbayandur $

#5 rails in versiyonunu test edelim

$ rails --version

hata verdi, yukarda ki islem dogru tamamlanmadigindan root olarak giris yaptigimiz icin tekrar asagida ki kodu yazip yükleme islemini tamamliyoruz.

$ gem install rails

#6 Tekrar Rails Versiyonu Kontrol edelim.

root: /home/basbayandur $ rails --version                                                                                                                                                                             
Rails 3.2.16

 

Bu yazimiz da Ruby on Rails icin gerekli Yazilimlari koding de bulunan sanal sunucumuza yüklemis olduk.

Bir sonra ki yazimizda da Ruby on Rails ile gelen hazir script lerden olan bir Blog kuracagiz.

 

Ruby on Rails Giris

Merhaba arkadaslar,

muhtemelen sizde ruby on rails ögrenmek icin bir yerlerden bu sayfaya yönlendirildiniz. Basta aciklamak gerekirse bu blogu kendim icin actim, arastirma ve notlarimi paylasmak istedim.

Burda kalkip Ruby on Rails nedir ne degildir diye 2 saat aciklama yapmayacagim ve direk kodlamaya gececegim.

Uygulamayi koding.com üzerinden yapacagim, cunku IDE siniflari hepsi hali hazirda kurulmus ve zaman kaybetmeye de gerek yok.

 

Bu Baslik altindan adim adim Konulari eklerim.

 

1.

2.

3.

 

 

10 adet kullanışlı Mac OS X Terminal Komutu

mac os x terminal logoBu yazımda ilerde lazım olabileceğine inandığım ve belki birçok kullanıcınında ihtiyacı olacağına inandığım en sık kullanılan ve en çok ihtiyaç duyulan 10 tane mac os x terminal komutunu ve işlevlerini sizlerle paylaşmak istiyorum.

Başlamadan önce…

Yazımıza başlamadan önce sizlere Terminal nedir ve ne iş görür konusunu merak edenlere elimden geldiğince açıklama yapmaya çalışacağım.

Terminal (resmi adı aslında Terminal.app) UNIX tabanlı işletim sistemlerinde kullanılan komut satırının kendisidir. (OS X işletim sistemleri UNIX-tabanlı, ve  Windows ise  NT-tabanlı işletim sistemleridir.). Günümüzde artık son kullanıcıların büyük bir bölümü grafik arayüzlü (GUI) işletim sistemlerini tercih etmekte haklı oldukları kadar tabi ileri düzey kullanıcıları her zaman tatmin edemediği için Terminal Komut Satırları da bu kesime hitap etmektedir. (CMD yada MS-DOS ise Windows tabanlı işletim sistemlerinin terminalleridir.)

Terminal Komut Satırı adındanda anlaşılacağı gibi Komut girdileri ile çalıştığından birçok kullanıcı için korkutucudur. Aslında bir süre kullandıktan sonra daha rahat ve hızlı işlev yaptığını anladığınız zaman artık Komut Satırı bile masaüstünüzden ayrılmıyor.

Konuya girmeden önce sizlere en sık kullanılacak bir kaç komutu açıklamak istiyorum.

  • ls – bulunduğunuz klasör veya dizinde ki tüm dosyaları ekrana sıralar.
  • cd – klasör veya dizin değiştirme komutu  (DOS da da olduğu gibi)
  • sudo – yönetici daha doğrusu sisteme root olarak girmek için gerekli komut ve akabinde de şifre sorulacaktır.

Kısa Not: sudo komutunu kullanırken mutlaka ne yaptığınızdan emin olmanız gerekiyor, bu komut ile giriş yaptıktan sonra yapacağınız değişiklikler bazen geri döndürelemez.

 1. Lion/Mountain Lion da Pop-up Accent Pencerelerini devre dışı bırakmak

defaults write -g ApplePressAndHoldEnabled -bool false

Tekrar eski haline getirmek için ise aynı komutu yazıp sonunda bulunan false değerini true olarak değiştirebilirsiniz.

sudo defaults write /System/Library/Launch Daemons/com.apple.backupd-auto StartInterval -int 1800

Bu komutu Terminale girdikten sonra artık her 30 dakika arayla yedeklemeniz otomatik olarak yapılacaktır. 1800 olan yeri istediğiniz değerlere göre belirleyebilirsiniz. (Unutmayın 15 dakika 900 saniye olarak hesaplandığından istediğiniz değere göre 1800 olan kısmı değiştirebilirsiniz.)

Devamı; http://computers.tutsplus.com/tutorials/10-terminal-commands-that-every-mac-user-should-know–mac-4825