Sezgisel ve algoritma arasındaki fark nedir?


Yanıtlar:


99

Algoritma, bir soruna otomatikleştirilmiş bir çözümün açıklamasıdır . Algoritmanın yaptığı şey tam olarak tanımlanmıştır. Çözüm mümkün olan en iyi çözüm olabilir ya da olmayabilir ama ne tür bir sonuç alacağınızı baştan bilirsiniz. Bir programı (bir parçasını) almak için bazı programlama dillerini kullanarak algoritmayı uygularsınız .

Şimdi, bazı sorunlar zordur ve kabul edilebilir bir süre içinde kabul edilebilir bir çözüm bulamayabilirsiniz. Bu gibi durumlarda, bazı keyfi seçimler (eğitimli tahminler) uygulayarak çoğu zaman çok daha hızlı bir çözüm elde edebilirsiniz: bu bir buluşsaldır .

Sezgisel yöntem, hala bir tür algoritmadır, ancak sorunun olası tüm durumlarını keşfetmeyecek veya en olası olanları keşfederek başlayacaktır.

Tipik örnekler oyunlardandır. Bir satranç oyunu programı yazarken, mümkün olan her hareketi belirli bir derinlik düzeyinde denediğinizi ve tahtaya bazı değerlendirme işlevleri uyguladığınızı hayal edebilirsiniz. Sezgisel yöntem, açıkça kötü hareketlerle başlayan tam dalları hariç tutar.

Bazı durumlarda en iyi çözümü değil, bazı kısıtlamalara uyan herhangi bir çözümü arıyorsunuz. İyi bir sezgisel yöntem, kısa sürede bir çözüm bulmaya yardımcı olabilir, ancak tek çözüm denememeyi seçtiği eyaletlerdeyse herhangi bir çözüm bulamayabilir.


3
Sezgisel tarama için başka bir yaygın kullanım, virüs algılamadır; burada bir virüsün var olduğundan emin olamayabilirsiniz, ancak bir virüsün belirli anahtar özniteliklerine bakabilirsiniz.
Dana Holt

Heah thats true and for cracking programları
streetparade

1
@kriss, Yani .. sezgisel bir algoritmadır.
Pacerier

1
@Pacerier: evet. Belirli bir problemin çözüm alanında gezinmeye yardımcı olan bir algoritmadır. Bunu, pratik hale getirmek için bir algoritmayı değiştirme stratejisi (meta algoritma) olarak da görebilirsiniz. Hala bir algoritmadır, tüm yöntemler öyledir ve Buluşsal yöntem kesinlikle bir yöntemdir.
kriss

33
  • Bir algoritma tipik olarak belirleyicidir ve optimal bir sonuç verdiği kanıtlanmıştır
  • Bir buluşsal yöntemin doğruluk kanıtı yoktur, genellikle rastgele öğeler içerir ve en iyi sonuçları vermeyebilir.

Optimal bir çözümü bulmak için etkili bir algoritmanın bilinmediği birçok problem, çok hızlı bir şekilde optimuma yakın sonuçlar veren sezgisel yaklaşımlara sahiptir.

Bazı örtüşmeler vardır: "genetik algoritmalar" kabul edilen bir terimdir, ancak kesinlikle konuşursak, bunlar algoritma değil, buluşsal yöntemlerdir.


2
Bir algoritmanın optimal bir sonuç verdiğinin kanıtlandığını söylemem: hangi problemle ilgili olarak algoritmaya bağlıdır.
nbro

Optimal bir sonuç elde etmek, algoritmaların temel kalitesi değildir, kesinliktir, yani kesin sonuçtur, sezgisel yöntem ise size yaklaşık sonuçlar sağlar.
Marina Dunst

22

Sezgisel, özetle "Eğitimli bir tahmin" dir. Wikipedia bunu güzel bir şekilde açıklıyor. Sonunda, belirtilen probleme optimal bir çözüm olarak "genel kabul" yöntemi alınır.

Sezgisel, problem çözme, öğrenme ve keşfetmeye yardımcı olan deneyime dayalı teknikler için bir sıfattır. Mümkün olan en iyi yanıta veya 'en uygun çözüme' yakın olması beklenen bir çözüme hızla ulaşmak için sezgisel bir yöntem kullanılır. Buluşsal yöntemler "pratik kurallar", eğitimli tahminler, sezgisel yargılar veya basitçe sağduyudur. Sezgisel, bir problemi çözmenin genel bir yoludur. Bir isim olarak sezgisel yöntem, sezgisel yöntemlerin başka bir adıdır.

Daha kesin bir ifadeyle, buluşsal yöntemler, insanlarda ve makinelerde problem çözmeyi kontrol etmek için kolayca erişilebilir, ancak gevşek bir şekilde uygulanabilir bilgileri kullanan stratejileri ifade eder.

Bir algoritma, bir problemi çözmek için kullanılan sonlu talimatlar kümesini içeren bir yöntemdir. Yöntemin problem için işe yaradığı matematiksel veya bilimsel olarak kanıtlanmıştır. Biçimsel yöntemler ve kanıtlar var.

Sezgisel algoritma , birçok pratik senaryoda, genel bir sezgisel yöntemle bir probleme kabul edilebilir bir çözüm üretebilen, ancak bunun doğruluğunun resmi bir kanıtı olmayan bir algoritmadır.


8

Bir algoritma yapılacak işlemlerin kendine yeten bir adım adım seti 4 A bir yol için vardır: tipik olarak bir problem, örneğin şu şekilde bir çözümü belirlemek için (bilgisayar veya insan) talimatların bir sonlu dizisi olarak yorumlanır B veya A ile B arasındaki en küçük yol nedir? İkinci durumda, 'makul derecede yakın' bir alternatif çözümle de tatmin olabilirsiniz.

Sezgisel algoritmanın bir olduğu belirli algoritma kategorileri vardır. Bu durumda algoritmanın (kanıtlanmış) özelliklerine bağlı olarak, bu üç kategoriden birine girer (not 1):

  • Kesin : çözümüngirdi problemiiçin optimal (veya kesin çözüm)olduğu kanıtlanmıştır.
  • Yaklaşıklık : çözüm değerindeki sapmanın, önceden tanımlanmış bir sınırdan asla optimum değerden daha uzak olmadığı kanıtlanmıştır (örneğin, hiçbir zaman optimum değerden% 50'den fazla büyük değildir)
  • Sezgisel : Algoritmanın optimal olduğu veya optimal çözümün önceden tanımlanmış sınırları içinde olduğu kanıtlanmamıştır

Bir yaklaşım algoritmasının aynı zamanda bir sezgisel olduğuna dikkat edin, ancak daha güçlü özelliğe sahip olduğu için çıkardığı çözüme (değer) kanıtlanmış bir sınır vardır.

Bazı problemler için, hiç kimse optimal çözümleri hesaplamak için 'verimli' bir algoritma bulamamıştır (not 2). Bu sorunlardan biri, iyi bilinen Seyahat Eden Satıcı Problemidir. Örneğin, Christophides'in Traveling Salesman Problemi için algoritması , en uygun çözümün% 50'sinde olduğu kanıtlanmadığı için sezgisel olarak adlandırılırdı . Ancak kanıtlanmış olduğundan, Christophides'in algoritmasına daha doğru bir şekilde yaklaşıklık algoritması adı verilir.

Bilgisayarların yapabileceklerine ilişkin kısıtlamalar nedeniyle, mümkün olan en iyi çözümü verimli bir şekilde bulmak her zaman mümkün değildir . Bir problemde yeterli yapı varsa, çözüm uzayı çok büyük olsa bile (yani en kısa yol probleminde) çözüm uzayını geçmenin etkili bir yolu olabilir.

Buluşsal yöntemler, genellikle arama yönünü yönlendirmek için 'uzman bilgileri' veya 'eğitimli tahminler' ekleyerek algoritmaların çalışma süresini iyileştirmek için uygulanır. Pratikte, bir buluşsal yöntem, ilk olarak nereye bakılacağını belirlemek için optimal bir algoritma için bir alt rutin de olabilir .

(not 1) : Ek olarak, algoritmalar rastgele veya deterministik olmayan öğeler içerip içermedikleri ile karakterize edilir. Her zaman aynı şekilde çalışan ve aynı cevabı üreten bir algoritmaya deterministik denir.

(not 2) : Buna P-NP problemi denir ve NP-tam ve NP-zor olarak sınıflandırılan problemlerin 'verimli' bir algoritmaya sahip olma olasılığı düşüktür. Not; @Kriss'in yorumlarda belirttiği gibi, hesaplamak için üstel zamana veya alana ihtiyaç duyan 'daha kötü' problem türleri var.

Sorunun bir kısmını cevaplayan birkaç cevap var. Onları daha az eksiksiz ve yeterince doğru bulmadım ve @Kriss tarafından verilen kabul edilen yanıtı düzenlememeye karar verdim


Algoritma kelimesi tanımınızın çok kısıtlayıcı olduğuna inanıyorum. Dizinin kullanılması paralel olmayan anlamına mı geliyor? Parallell algoritmaları gayet iyi ve günümüzde bile olağan. Bir sinir ağı kullanarak bir sorunu çözmeye ne dersiniz? Veya bir kısıtlama yayma aracı? Algoritmalar? Meta algoritmalar?
kriss

Okuyucu, NP problemlerinin daha kötüsü olduğunu hissediyor. Bu doğru değil. Üstel veya daha kötüsü gibi gerçekten kötü algoritmalara ihtiyaç duyan gerçekten zor problemler var. NP özeldir çünkü bir çözümümüz varsa onu kontrol etmek kolay ve hızlıdır, halihazırda yoksa bulmamız çok zordur. Bir labirentten çıkmak için doğru talimatlarımız olup olmadığını kontrol etmek kolaydır, çıkışı bulmak çok daha zordur. Böylece NP hem kolay hem de zordur, eğer tüm olası çözümleri aynı anda (belirleyici olmayan bir şekilde) deneyebilirsek, çözmek çok basit olurdu ... ama yapamayız.
kriss

Geri dönüşünüz için teşekkür ederiz! İfadeyi biraz güncelledim ve farklı bir şekilde yaklaştım. Benim görüşüme göre, kısıt yayılımı bir şeye yaklaşmak için bir tekniktir, ancak henüz kısıt yayılmasında açıklanan çözüme adım adım nasıl geleceğini açıklayan bir algoritma değildir. Expspace sınıfları konusunda haklısınız ve 'daha kötüsü', buna da bir not ekledim. BTW: NP-Complete ve / veya NP-Hard'ı tam olarak yazın, çünkü NP'nin alt kümesi aynı sınıfta olmayan (varsayıldığı gibi) 'verimli' çözülebilir problemler de içerir.
Joost

Tabii ki haklısın NP-Complete yazmalıydım. Benim hatam.
kriss

Meslektaşlarımdan birinin adını verdiğinden çok daha iyi: NP-ness (kulağa korkunç ve iğrenç geliyor ...)
Joost

6

Aslında aralarında çok fazla ortak nokta olduğunu düşünmüyorum. Bazı algoritmalar mantıklarında buluşsal yöntemler kullanır (genellikle daha az hesaplama yapmak veya daha hızlı sonuç almak için). Genellikle sezgisel tarama, açgözlü algoritmalar olarak adlandırılan algoritmalarda kullanılır.

Sezgisel yöntem, algoritmamızda en iyi seçimi elde etmek için (bir seçim yapılması gerektiğinde) kullanmanın iyi olduğunu varsaydığımız bazı "bilgi" dir. Örneğin ... satrançta bir buluşsal yöntem olabilir (yapabiliyorsanız her zaman rakibin vezirini alın, çünkü bunun daha güçlü rakam olduğunu biliyorsunuz). Sezgisel yöntemler, sizi doğru yanıta götüreceğinizi garanti etmez, ancak (varsayımlar doğruysa) genellikle çok daha kısa sürede en iyiye yakın yanıt alır.


4

Sezgisel algoritmalar algoritmalardır, dolayısıyla bu anlamda hiçbiri yoktur, ancak sezgisel yöntem, problem çözmede 'mümkün olan en iyi' çözümü bulmak yerine 'yeterince iyi' bir cevap vererek 'tahmin' yaklaşımını benimser.

İyi bir örnek, çözüm bulmak istediğiniz çok zor (NP tamamlandı okuma) bir probleme sahip olduğunuz, ancak buna ulaşmak için zamanınız olmadığı, bu nedenle sezgisel bir algoritmaya dayalı yeterince iyi bir çözüm kullanmanız gerektiğidir. Genetik bir algoritma kullanarak seyahat eden bir satıcı problemine çözüm bulmak.


4

Algoritma, bir girdi verilen bir şeyi (bir işlevi) hesaplayan ve bir sonuç veren bazı işlemler dizisidir.

Algoritma, kesin veya yaklaşık değerler verebilir.

Ayrıca, kesin değere yakın yüksek olasılıkla rastgele bir değer hesaplayabilir.

Sezgisel bir algoritma, girdi değerleri hakkında bazı bilgiler kullanır ve kesin değeri hesaplamaz (ancak optimuma yakın olabilir). Bazı özel durumlarda sezgisel, kesin çözüm bulabilir.


3

Bir Algoritma, bir problemi çözmek için açıkça tanımlanmış bir talimatlar dizisidir, Buluşsal yöntemler, bir çözüme ulaşmak için bir öğrenme ve keşif yaklaşımından yararlanmayı içerir.

Yani, bir problemi nasıl çözeceğinizi biliyorsanız, bir algoritma kullanın. Bir çözüm geliştirmeniz gerekiyorsa, o zaman sezgiseldir.


2

Sezgisel yöntem, genellikle yeterince iyi bir yanıt veren, ancak her zaman ve nadiren en iyi yanıtı veren bir optimizasyon veya stratejidir. Örneğin, seyahat eden satıcı problemini kaba kuvvetle çözecekseniz, maliyeti mevcut en iyi çözümün maliyetini aştığında kısmi bir çözümü iptal etmek bir buluşsal yöntemdir: bazen yardımcı olur, diğer zamanlarda olmaz ve kesinlikle olmaz '' Algoritmanın teorik (büyük-oh notasyonu) çalışma süresini iyileştirir


2

Bence Sezgisel, Yapay Zekada Öğrenmeye Dayalı Modelde kullanılan bir kısıtlamadır çünkü gelecekteki çözüm durumlarını tahmin etmek zordur.

Fakat yukarıdaki cevapları okuduktan sonra şüphem, "Sezgisel Optimizasyon Teknikleri kullanılarak nasıl başarılı bir şekilde uygulanabilir? Veya Stokastik Optimizasyon ile birlikte kullanıldığında tam teşekküllü algoritmalar olarak işlev görebilirler mi?"

http://en.wikipedia.org/wiki/Stochastic_optimization


oops !! yazım hatası "Yapay Zeka" olmalı
A_tanA

2

Okuduğum en iyi açıklamalardan biri, şimdi alıntıladığım harika Code Complete kitabından geliyor :

Sezgisel yöntem, bir yanıt aramanıza yardımcı olan bir tekniktir. Sonuçları şansa bağlıdır çünkü bir buluşsal yöntem size ne bulacağınızı değil, yalnızca nasıl bakacağınızı söyler. Size doğrudan A noktasından B noktasına nasıl gideceğinizi söylemez; A noktasının ve B noktasının nerede olduğunu bile bilmeyebilir. Aslında sezgisel, palyaço kıyafeti içindeki bir algoritmadır. Daha az tahmin edilebilir, daha eğlenceli ve 30 günlük para iade garantisi olmadan geliyor.

İşte birinin evine gitmek için bir algoritma: Puy-allup'a giden 167 numaralı otobana gidin. South Hill Mall çıkışından çıkın ve 7,2 mil tepeye çıkın. Marketin yanındaki ışıktan sağa dönün ve sonra ilk sola dönün. 714 North Cedar'da soldaki büyük bronzluk evin araba yoluna dönün.

İşte birinin evine ulaşmak için bir buluş: Size postaladığımız son mektubu bulun. Dönüş adresinde kasabaya gidin. Kasabaya vardığında, birisine evimizin nerede olduğunu sor. Bizi herkes tanır - birisi size yardımcı olmaktan memnun olacaktır. Kimseyi bulamazsanız, bizi genel bir telefondan arayın, sizi almaya geleceğiz.

Bir algoritma ile bir buluşsal yöntem arasındaki fark ince ve iki terim de bir şekilde üst üste biniyor. Bu kitabın amaçları doğrultusunda, ikisi arasındaki temel fark, çözümden dolaylılık düzeyidir. Bir algoritma size talimatları doğrudan verir. Sezgisel yöntem, talimatları kendiniz için nasıl keşfedeceğinizi veya en azından nerede arayacağınızı söyler.


Bir algoritma ile sezgisel arasında bir fark olduğunu söylemek, bir kuş ile tavuk arasında bir fark olduğunu belirtmek gibidir. Buluşsal yöntemler bir tür algoritmadır.
Joost

0

Bulunan çözümün kalitesine ilişkin herhangi bir garanti olmaksızın, optimal olmayan bir çözüm bulurlar, sadece polinomların sezgisel gelişiminin mantıklı olduğu açıktır. Bu yöntemlerin uygulanması, gerçek dünya problemlerini veya büyük problemleri çözmek için uygundur, hesaplama açısından öylesine gariptir ki, onlar için polinom zamanında yaklaşık bir çözüm bulabilecek bir algoritma bile yoktur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.