Önerme ve yüklem mantığını öğrenme nedeni


14

Bilgisayar bilimcilerinin veya yazılım geliştirme ile ilgili herhangi bir mühendisin temel mantık çalışmasını temel olarak anlamasının önemini anlayabiliyorum.

Ancak, herhangi bir bilgi temsilini gerektiren görevler dışında, bunlar hakkında açıkça bilgi gerektiren herhangi bir görev / iş var Knowledge Basemı? Kavramsal tepkiler yerine görev türlerini duymak istiyorum.

Bunu sormamın nedeni sadece benim merakımdan. CS öğrencileri bu konuda belirli bir süre geçirmek zorunda kalırken, bazı pratik yoğun kurslar (örneğin AI-Sınıfı ) bu konuyu tamamen atladı. Ve merak ediyorum, örneğin bilmek predicate logic, çizmeye yardımcı ER diagramolabilir ama bir gereklilik olmayabilir.


27.05.2012 Güncellemesi) Yanıtlarınız için teşekkürler. Şimdi bence logicçok miktarda uygulamasıyla CS'de önemini tamamen anlıyorum ve kabul ediyorum . En iyi cevabı, Windowsmavi ekran sorununun çözümünden aldığım etkileyici durumdan gerçekten seçtim .


4
Cevabımı yazarken, sorunuzun kapsamının belirsiz olduğunu gördüm. Kendinizi CS, endüstri veya her ikisi ile mi sınırlandırıyorsunuz, yoksa genel olarak mı kaldırabilirsiniz?
Dave Clarke

@Dave Clarke Evet bunu da yeterince net bulmadım. Bilmek istediğim ilk şey, belirli mantığın okuryazarlığının hangi endüstride gerekli olduğuydu (ancak yazılımla ilgili herhangi bir mühendisin bu konuyu atlamaması gerektiğine ikna etmek için cevabınızı takdir etsem de).
IsaacS

Eğer gerçekten aradığınızı yakalamak için sorunuzu değiştirebilirseniz iyi olur.
Dave Clarke

ifTeklif mantığı olmadan tam olarak nasıl bir durum yazılır ?
edA-qa mort-ora-y

Yanıtlar:


22

Birleşmeyi ve bununla ilgili her şeyi sevme eğilimindeyim . Eğer öneri ve yüklem mantığını bilmiyorsanız, o zaman mantığın temellerini atlıyorsunuz demektir. Listelenen herhangi bir şeye ilgi duyuyorsanız, matematik ve ilgi toplama ve çarpmayı atlamak gibi bir şey olacaktır. Mantık sadece yapay zeka için değil.

Pratik bir cevap olarak, Intel kayan nokta problemini ve bunları artık nasıl görmeyeceğinizi hatırlayın. Teorem kanıtlayıcıların kullanımı sayesinde bunlar geçmişte kaldı. Ölümün Microsoft mavi ekranını hatırlayın . SAT çözücüler, model kontrolü ve diğer mantık tabanlı çözüm sayesinde nesli tükenmekte olan bir türdür.


3
nesli tükenmekte olan türler [kaynak belirtilmeli - Segmentasyon hatası. Çekirdek boşaltıldı.
JeffE

@JeffE Eğer bir alıntı arıyorsanız, bunun yerine gerçek kanıtları sunarım. En son ne zaman gördün? :)
Guy Coder

3
Hiç görmedim. Mac kullanıyorum.
JeffE

1
@JeffE Mac'ler, makine mimarisinden uygulama programlarına kadar her şeyin bir ekip / kuruluş tarafından kararlaştırıldığı yakın bağlantılı sistemlerdir. Windows sistemleri, çeşitli üreticilerin ve ekiplerin, yalnızca belirtilen standartlara ve arabirimlere (genellikle gevşek ve belirsiz) dayanarak birbirine bağlanan çözümler sağladığı açıktır. Bilgisayar Bilimi için çok daha zorlu bir iş. Bunu güvenli bir şekilde yapmak için teorem kanıtlama / statik analiz tekniklerini geliştiren Microsoft ekipleri, alanımızda önemli ilerlemeler kaydetmiştir.
Uday Reddy

1
@UdayReddy: Microsoft araştırmacılarının temel ilerleme kaydettiğinden veya BSOD'nin eskisinden çok daha az yaygın olduğundan şüphe duymuyorum. Ancak "nesli tükenmekte olan türler" desteklenmeyen abartıdır; Arızalı kod tek çökme kaynağı değildir.
JeffE

22

Mantık ve bilgisayar bilimi arasında son derece derin ve yaygın bağlantılar vardır. Ne olabileceğini anlayarak, bilgisayar bilimlerinin "bilgi teknolojisi" veya "bilişim" olarak da adlandırıldığını, yani bilgisayar sistemlerinin bilgi yakaladığını, işlediğini ve sunduğunu unutmayın. Mantık da benzer bir şey. Bilgilerin cümlelerde nasıl ele geçirildiğini ve bir ifadenin diğerinin sonucu olabileceğini , yani bilgi içeriğinin başka bir ifadede (veya ifadelerin toplanmasında) nasıl mevcut olduğunu araştırır. Bu anlamda, mantık ve bilgisayar bilimi aslında aynıdırdisiplin, farklı yönlere odaklanıyor. Mantıkçılar (Kilise, Kleene, Turing, Post ve öğrencileri ve meslektaşları) Bilgisayar Bilimi disiplinini yarattılar ve birçok mantıkçı Bilgisayar Bilimi'ne, özellikle Jean-Yves Girard ve öğrencilerine katkıda bulunmaya devam ediyor.

Bilgisayar Bilimi'nde bazı standart mantık uygulamaları şunlardır:

  • Dijital devrelerin tasarımı tamamen teklif mantığına dayanır, öyle ki mühendisleri buna "devre tasarımı" yerine "mantık tasarımı" adını verir. Bir bilgisayar programı yazmanın bile çoğu zaman onun “mantığını” tasarlamayı içerdiği düşünülmektedir. (İkinci manada "mantık" ın, program aracılığıyla bilgi akışına ve doğru işlenip işlenmediğine atıfta bulunmak için kullanılan biçimsel mantık yerine gayri resmi bir fikir olduğunu unutmayın.)

  • Tahmin mantığı ve matematiksel kuzeni, küme teorisi, çeşitli hesaplama dillerinde , örneğin ilişkisel veritabanı sorguları için SQL dilinde kullanılır. "Mantık programlama dilleri" adı verilen mantığa dayalı programlama dilleri de vardır.

  • Daha önce bahsettiğiniz bilgi temsilinin mantığa dayanan birçok biçimselliği vardır. Mantıksal olmayan formalizmleri kullansa bile, birçoğunun hala mantıklı bir anlamı vardır ve bu nedenle mantığa dayanır.

  • İfadelerin sadece doğru / yanlış değerlere sahip olmadığı, ancak kesinlik / belirsizlik seviyelerinin bulunduğu olasılıksal mantık, giderek makine öğrenme sistemlerinin temelini oluşturmaktadır .

  • Bir programın ne yaptığını resmi olarak belirtmek istiyorsanız, yani bir program belirtimi vermek istiyorsanız, sonunda bir tür mantıksal dil kullanırsınız. Gerçekten de, yüklem mantığı ve küme teorisine dayanan Z ve B gibi birçok program belirtim dili vardır. Karaçam gibi denklem mantığına dayanan şartname dilleri de vardır. Bilgisayar Bilimcileri, Hoare Logic ve Separation Logic gibi bilgisayar biliminin ihtiyaçlarını temsil etmek için genellikle yeni mantıklar icat ederler veya geçici mantık ve modsal mantık gibi geleneksel mantıkların çeşitli az kullanılan biçimlerini alıp geliştirirler ve bunları daha da geliştirirler.

  • Bir programın yapılması gerekeni yapıp yapmadığını doğrulamak istiyorsanız , sadece mantığın dilini değil, tüm mantık mekanizmalarını da kullanırsınız: ispat teorisi, model teorisi ve karar prosedürleri. Doğrulama teknolojisi artık büyük bir hızla büyümektedir ve on yıl kadar bir sürede, neredeyse tüm yazılım geliştirme için rutin olarak kullanılmalarını bekliyorum.

Aslında, mantık ve bilgisayar bilimi arasındaki bağlantılar o kadar derin ve yaygın ki mantığı tam olarak anlamadan iyi bir bilgisayar bilimcisi olmanın zor olduğunu söyleyebilirim.

Bazı AI bilim adamlarının şu anda mantığın altında kalmasının nedeni, AI'nın ilk geliştiricilerinden bazılarının bir araç olarak hazır mantığı önermeleribir vakıftan ziyade. AI, doğası gereği sihir vermeyi vaat ediyor. Sonuç elde etmek için programlama sistemlerinin zor işini yapmak zorunda değiliz. Kendi kendilerine nasıl çözüm üreteceklerini bulabilirler çünkü “akıllı” olurlar. Mantık yolu gösteriyor gibiydi, çünkü bilgisayar sistemleri mantığı anlar ve mantık kurallarını kullanarak bilgiyi nasıl işleyeceğini bilseydi, sihir dağıtabilirlerdi. Mantıktaki bu tür inanç, geçmişe bakıldığında yanlış yerleştirilmişti. İlk olarak, kullanıma hazır mantık aynı anda çok güçlü ve çok zayıf. Mantık kurallarının etkili prosedürler tasarlamak için çok genel olması bakımından çok güçlüdür. Aynı zamanda çok zayıf çünkü matematikçiler tarafından matematiğin ihtiyaçları için tasarlanan mantık ve öyle değil. Yapay zeka sistemlerinin ele alması gereken diğer birçok gerçek dünya bilgisiyle başa çıkmak için gereken kelime dağarcığına sahip olmak (belirsizlik, zaman, değişim, bilgi, ajans ve benzeri gibi bağlamsal bilgiler gibi). Yani, AI şu anda mantığa karşı bir tepki veriyor. Ama bence, bu geri tepmeyi aştıklarında, AI bilim adamları tüm yeni yöntemlerin halamantık, genel olarak yorumlanmış .


İlişkisel veritabanları ekleyin!
reinierpost

Çok güzel ve eksiksiz bir cevap, Jean-Yves Girard'dan bahsedin. Olasılıksal mantığın bulanık mantıkla aynı araştırma alanı olduğunu düşünüyor musunuz? Literatürde iki terimi karşılıyoruz ve aynı araştırma alanını gösterip göstermediklerini bilmek istiyorum.
zurgl

@zurgl. Anladığım kadarıyla, kesin olarak "olasılıksal mantık" olarak adlandırılan tek bir biçimcilik yoktur. Bulanık mantık gerçekten böyle bir biçimciliktir, ama başkaları da vardır. Günümüzde yapay zekada en başarılı olan olasılıksal akıl yürütme biçimi Bayesci çıkarımdır. Bununla birlikte, mantıksal temelleri henüz kesin olarak atılmamıştır.
Uday Reddy

17

Mantık, tüm teorik bilgisayar bilimleri için temeldir. Bunları öğrenmeden, programlama dili semantiğini, Turing makinelerini, mantık programlamasını, hesaplanabilirliği vb. Düzgün şekilde kavrayamazsınız. Programlarınız hakkında mantık yürütmek bile onsuz daha zor olacaktır. Kesinlikle, bazı CS kavramının matematiksel bir kanıtını yapmaya çalışmak neredeyse imkansızdır.

Ya da belki de endüstride kullanımları soruyorsunuzdur. Öğrenme mantığı, açık bir şekilde akıl yürütmeyi ve diğer insanların argümanlarında delikler görmeyi öğrenmenin temelini oluşturur. Resmi sembolleri kullansanız da kullanmasanız da mantık esastır.


Algoritmalar eksik.
Yuval Filmus

4
Bu 'vb.' İçine dahil edilmiştir.
Dave Clarke

9

CS uygulayıcılarının ve teorisyenlerinin karşılaştıkları tekrarlanan görevlerden biri, kodlarının doğruluğuna güven duymaktır.

İki ana yaklaşım vardır:

  1. İspat: Bir sistemin bir kısmının, muhtemelen önkoşullar, sözleşmeye göre tasarım, kod denetleyicileri tarafından desteklenen belirli özelliklere sahip olduğuna dair mantıklı bir kanıt oluşturun.
  2. Sınama: Belirli özelliklerin çeşitli girdiler için geçerli olup olmadığını sınayın ve sonra o özelliğin diğer girdiler için beklediğini ortaya çıkarın.

Birincisi, mantıksal yöntemlere dayanan, genellikle tek seçenek

  1. Tipik bir girdi yoktur. Örneğin, güvenlik özelliklerini test ederken, hangi girdilerin atipik olduğu konusunda mantıklı bir şekilde mantık aklınıza gelmedikçe, endişelenmeniz gereken atipik girdilerdir, iyi kapsama alma olasılığınız yoktur.
  2. Konfigürasyon alanı çok geniştir, bu nedenle lokal olarak test etmeden önce hangi parçaların hangi diğer parçaları etkileyebileceğini mantıklı bir şekilde akıl ederek parçalara ayırmanız gerekir.
  3. Yalnızca sizin denetiminiz dışındaki sistemlerin son durum davranışlarını açıklayan belgelere sahipsiniz. Bunları simüle edebilirsiniz, ancak harici bir bağımlılık başarısız olduğunda ne olacağını test edemezsiniz, çünkü yasal veya etik nedenlerle başarısız olmasına neden olamazsınız.

Bir ispatın bulunmadığı ampirik testler temelde ispatın yerine geçer. Bir sistemi test edilebilir olacak şekilde tasarlarken, ispatın bazı kısımlarını "test X, Y ve Z testiyle" doldurduğunuz bir prova taslağı oluşturuyorsunuz. Mantıksal akıl yürütme yeteneği test edilebilir bir sistem tasarlayabilmek için gereklidir. Sistem test edilemez veya kanıtlanabilir değilse, tasarımcısı / mimarının amaçlanan kullanımına uygun olduğunu söyleyen bir işi yoktur.


6

Mantığın hayati rol oynadığı en önemli iki alan şunlardır:

  1. Biçimsel Dil özellikleri ve doğrulaması .
  2. Parametre izlenebilir sınıfları düzeltildi .

Z

Kısaca: 1. Dilin tanımı mantığa ihtiyaç duyar, 2: Bu prosedürlerin adaleti mantığa, 3. doğrulama prosedürleri mantığa ihtiyaç duyar.

Bunun derleyici tasarımından farklı olduğunu belirtmeliyim veya ..., Bu "Resmi" dillerin tanımı, bunu yapmanın ana nedeni, resmi bir kanıtı olan dil veya modelin doğruluğunu kanıtlamaktır. Bu yazılım modellerinin doğrulanması, uygulamadan önce hata bulma, uygulamadan önce tekrar kilitlenme bulma, ...., Bunu simüle eden yazılım için NModel'e bakabilirsiniz .

Şimdi neden Sabit parametre izlenebilir problemlerinde mantıkla çalışmanız gerekiyor, Sabit parametre izlenebilirlik sınıflarını farklı mantık düzeylerine bölebilirsiniz, bunlar birbirine dönüştürülebilir: mantık otomatına, otomata grafiğe ve ayet, Ama eğer mantık konusunda uzman olursunuz, bunları basitçe bölebilir ve karar verebilirsiniz, en önemli teorem ( Robertson ve Seymour teoreminden sonra ), bu alanda Courcelle teoremi . daha fazla bilgi için Meta Algoritmik Teorem anketini okuyun .


Mantık dilleri tanımlamak için kullanılabilse de, bu benim deneyimimde pek de hayati bir rol değil. Mantıkların FPT ile nasıl bir ilişkisi olduğunu anlamıyorum.
Raphael

@ Raphael, yorumunuzun cevabının bir satırdan fazla sürdüğünü görüyorum, cevabımı güncelledim. Sana cevap verdiğimi düşünüyorum, ama hala iyi olmadığını düşünüyorsanız, bana "Resmi" bölümüm hakkında söyle, ilk wiki bağlantım yeterince iyi değil, daha fazla bilgi ekledim, ayrıca ikinci bölüm için güzel bir kağıt ekledim ve hakkında daha fazla bilgi edinmek isterseniz, okuyabilirsiniz.
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.