CS raporlarında ampirik sonuçlar


31

CS alanında yeniyim ve okuduğum birçok makalede ampirik bir sonuç olmadığını (kod yok, sadece lemmalar ve ispatlar) gördüm. Neden? Bilgisayar Biliminin bir bilim olduğunu düşünerek, bilimsel yöntemi izlememesi gerekmiyor mu?


26
Kısa cevap, “bilgisayar bilimi” nin birçok şey olduğu. (Bazıları) AI gibi bazı kısımlar aslında bilimdir. Diğer kısımlar mühendisliktir ve teorik kısmı matematiktir (uygulamalı). HCI’nın bazı kısımları sanat gibidir. Bilgisayar bilimi geniş bir çadırdır.
Aaron Roth

6
Kanıtınız varsa, neden ampirik sonuçlara ihtiyacınız var?
Aryabhata

2
@Moron: Bir algoritmanın uygulanmadan uygulanabileceğini nasıl kanıtlarsın?
Jukka Suomela

8
Teorik CS, deneysel sonuçları da önleyen Matematiksel Fizik'e benziyor. Deneysel Fizik gibi bir şey istiyorsanız, Yazılım Mühendisliği, Program Doğrulama, Veri Tabanı Sistemleri vb. Araştırmalara bakabilirsiniz
Yaroslav Bulatov

4
kusur arama: " bilimsel yöntem"?
Kaveh

Yanıtlar:


21

Matematik de bir bilimdir ve bu alanda yayınlanmış ampirik sonuçları bulmak için uzun bir süre aramanız gerekecek (sanırım biraz olmalı). Kuantum fiziği gibi "lemmalar ve ispatların" deneyimle değer kazandığı başka bilimsel alanlar da var. Bununla birlikte, birçok bilim teori ve pratiği karıştırmaktadır (çeşitli oranlarla) ve Computer Science bir istisna değildir.

Bilgisayar Bilimi'nin matematikte kökleri vardır (bakınız Turing'in örneğin http://en.wikipedia.org/wiki/Alan_Turing ) Bazı hesaplama modelindeki bilgisayarların belirli bir işlem miktarında bazı problemleri çözebilecekleri (örneğin, FOCS, STOC, SODA, SoCG, vb. gibi konferanslar). Bununla birlikte, bilgisayar biliminin diğer birçok sonucu, deneysel sonuçların analizi yoluyla bu teorilerin pratik hayata uygulanabilirliği ile ilgilidir (örneğin, WADS, ALENEX, vb. Gibi konferanslar).

İdeal olanın teori ve pratik arasında iyi bir denge olduğu önerilmektedir, “Natural Science” da olduğu gibi, deneylerin izlenmesinin yeni teorilerin ortaya çıkmasını sağladığını ve bunun da bunları doğrulamak veya doğrulamak için yeni deneyler önerdiğini: Konferanslar hem deneysel hem de teorik sonuçları (örneğin ESA, ICALP, LATIN, CPM, ISAAC vb.) kabul etmeye çalışır. Bilgisayar biliminde "Algoritmalar ve Veri Yapıları" alt alanı, "Teorik" konferansların genellikle deneysel olanlardan daha fazla sıralandığı anlamında bir dengesizlik yaşayabilir. Bunun HCI veya AI gibi diğer bilgisayar bilimlerinde doğru olmadığına inanıyorum.

Umarım yardımcı olur?


Teşekkürler, gerçekten çok yardımcı olur. Son zamanlarda grafik teorisi ile ilgileniyorum ve okuduğum makalelerde neredeyse hiçbirinde kod veya deneysel sonuç yoktu. Bu yüzden sordum. Saf matematik yaptığınızda, deneysel sonuçlar üretemezsiniz, bu nedenle kanıtlar her şeydir. Fakat Graph Theory'de algoritmanızı kodlamak ve faydalı deneysel sonuçlar üretmek zor değil! MST problemini ele alalım. Mevcut endüstri uygulamaları Prim / Kruskal ve Boruvska'dır ve yine de gazetelerde daha güçlü algoritmalar tanımlanmıştır, ancak hiç kimse bunları kodlamadığı için kullanılmamaktadır.
toto

1
Evet, algoritmaları grafik teorisinden uygulayabilirsiniz. Ancak , grafik teorisindeki ilginç problemlerin birçoğu için , en azından zorudur, çünkü algoritmalardaki üstel zaman karmaşıklığı nedeniyle sadece çok küçük girdiler (kabul edilebilir şekilde) hesaplanabilir. NP
Mathieu Chapelle

1
@ toto Kesinlikle söyledikleriniz bazı problemler için geçerlidir, ancak MST problemi için books.google.com/…
Abel Molina

1
@toto. Eski algoritmaların kullanılmasının tek nedeni bu değil. TCS perspektifi için her zaman O ( n log n ) ' den daha iyidir . Fakat büyük-ah, algoritmayı pratikte pratik olmayan kılan büyük bir sabiti gizleyebilir. Böyle bir çalışma, TCS insanlarına yöneliktir ve algoritmayı kodlamak, okuyucunun kazanç sağlamasını ya da kafasını karıştırmaz. O(n)O(nlogn)
chazisop

24

Algoritma algoritmaları, sadece teoremleri kanıtlamaktan farklı bir takım araçları alan bir beceridir. Teori topluluğu tarafından keşfedilen birçok algoritma gerçekten pratikte uygulanmıştır (teorik topluluğun bu süreçte daha büyük bir rol oynadığını görmek istemesem de). Fizik aynı araştırmacılardan teorik ve deney yapmalarını istemez, ancak iki grubun iletişim kurması beklenir. Neden bilgisayar biliminde aynı ayrılığı görmeyi beklemiyorsunuz?

EDIT’E EKLENEN:

Suresh’in yukarıda "rol" derken neyi kastettiğime dair yorumumun genişlemesi, Bell Laboratuarlarında ve AT&T Laboratuarlarında, algoritmalardaki araştırmacıların gelişimdeki insanlarla konuşmaları teşvik edildi. Muhtemelen yapmam gereken kadarını yapmadım, ama en az bir kağıt aldım ve üniversitelerdeki teoriye uygulayıcılar ile uygulayıcılar arasında daha fazla iletişim olsaydı bu alan için iyi olacağını düşünüyorum. . Bu, bir algoritma ile gelen herkesin (pratik olsa bile) kodlaması gerektiği anlamına gelmez.

Öte yandan, pratik olabileceğini düşündüğünüz kodlama algoritmaları (veya bir öğrencinin kodlaması) uygulayıcılar tarafından uyarlanmasında yararlı olabilir. Bir örnek düşünün. Lempel ve Ziv, 1977 ve 1978'de yeni veri sıkıştırma algoritmaları hakkında iki teknik makale yazdı. Herkes onları görmezden geldi. 1984 yılında Welch , LZ78 üzerinde performansını biraz artıran hafif bir bükülme veren çok daha az teknik bir makale yazdı ve performansını diğer veri sıkıştırma yöntemleriyle karşılaştıran küçük bir çalışmanın sonuçlarını verdi. Birkaç programcı tarafından okunan bir dergide yayınlandı ve algoritma birkaç satır sözde kodla verildi. Metot hızlıca birkaç yerde uyarlandı ve sonuçta rezil bir fikri mülkiyet anlaşmazlığına yol açtı.

Tabii ki, araştırmacıların pratikle iletişim kurmaları için algoritmaların en iyi yollarından biri, Google, IBM veya diğer şirketlerde çalışan ve çalışan yüksek lisans öğrencileri üretmek ve bunu zaten yapıyoruz. Bir başka yol da bu forumdaki uygulayıcıların sorularını cevaplamak olabilir. Umarım, bununla da makul bir iş yapıyoruz.


4
Yani, fizikte aynı kişinin her ikisini de yapması beklentisi olmadığı halde, teoride ikisini de yapmalı mıyız? Hesaplama modelleri gerçekliğe fizik modellerden çok daha fazla yaklaştığı için mi?
Suresh Venkat

10
Teorisyenlerin uygulayıcılarla daha fazla konuşması gerektiğini söylüyorum. Fizik tarihine bakarsanız, teorisyenler deneycilerle konuşmayı bıraktıklarında kötü şeyler olmaya başlar. Aslında şu anda iki grup arasında makul miktarda bir iletişimin olduğunu düşünüyorum, ancak daha fazlasına sahip olmanın zararı olmayacağını düşünüyorum.
Peter Shor

3
Genellemeyeceğim ama birçok araştırmacının kodlama yapamadığını / hoşlanmayacağını ve pratik çalışmaların öğrencilerinden biri tarafından yapılmasına izin vereceğini düşünüyorum. Ben ve akıl hocamın durumu böyle.
toto

Resmi spesifikasyona karşı pratik hesaplamaya bağlı gerginlik, STEM tarihinde çok eskilere dayanıyor. Bazen resmi spesifikasyonlar yol açar (von Neumann'ın "Durağan patlama patlaması dalgaları teorisi üzerine" [1948], sonraki hesaplama simülasyonlarına karşı) ve bazen pratik hesaplama kılavuzları (Bowditch'in "New American Practical Navigator" [1807], Gauss'un "Discaitiones geneve curga's curvas" ürünlerine karşı " [1827]). En büyük matematikçiler (yukarıda belirtilen örneklerde Gauss ve von Neumann) sık sık resmi hesaplamaları pratik hesaplamalar ile birleştirmiştir.
John Sidles

3
Lempel-Ziv'in tarihçesi ve StackOverflow'taki yayınlara bakmak, beni algoritmalar teorisyenlerinin uygulayıcılar tarafından uyguladıkları konusunda algılayabilecek çok basit bir prensibi formüle etmemi sağladı: Algoritmanızın pratik olabileceğini düşünüyorsanız, kağıt.
Peter Shor

17

Teorik Bilgisayar Biliminin deneysel yöntem ve yöntemlerini kullanan bir araştırma alanı "Deneysel Algoritma" veya "Algoritma Mühendisliği" olarak adlandırılan alandır. Chris'in dediği gibi, yüksek performanslı bilgi işlem büyük ölçüde buna dayanıyor, çünkü modern sistemler zor zaman modellemede zorlandığımız karmaşık önbellek ve gecikme sorunlarına sahip.

Gerth Brodal ve Peter Sanders , hem “kanıt” hem de “ampirik” alemlerde ayak tutan araştırmacıların güzel örnekleridir.

- Güncelleme 1/20 / 2013-- Robert Sedgewick’in harika bir sunumundan da bahsedeceğim .


4
Hem ALENEX hem de ESA, uygulanan algoritmaların çalışmasını teşvik eder ve bu konuda bir konferans (SAE) da vardır.
Suresh Venkat

SAE Nedir? Bu TLA değiştirilemez. URL’niz var mı?
Peter Boothe

5
SAE, Deneysel Algoritmalar Sempozyumu olan SEA için bir yazım hatasıdır.
David Eppstein

1
Algoritma Mühendisliğini daha titiz bir şekilde de yapabilirsiniz, yani teorik modelleri rafine ederek gerçekliğe uyuyor ancak kesin analizler yapıyor. Yine de zor.
Raphael,

O(CubeRoot(n))

12

Bu, içinde bulunduğunuz disipline bağlıdır; Jeremy'nin dediği gibi, pratikte teoriye karşı bir yelpaze var

Karmaşıklık gibi konular teori tarafına göre ağırlıklandırılmaya meyillidir, çünkü çoğu zaman amaç mekan veya çalışma zamanı için bir sınır bulmaktır. Bir algoritmayı C ++ 'ta uygulamak ve ardından birkaç kez çalıştırmak bir sorunun NP tamamlanmış olduğunu kanıtlamaz.

Kutupsal karşıt olarak, yüksek performanslı bilgi işlem ( Süper Bilişim gibi konferanslarla ) hepsi ampiriktir; bellek hiyerarşisi ve çekirdek yükü bakımından çok fazla değişkenlik olduğu için hiç kimse bir HPC yayınına kanıt sunmayacaktır.

Peki (ne kadar süre bir şey almak çalıştırmak mu?) Gol, teknikleri, toplum, vs. bağlı olarak birbirinden tamamen farklı şekilde yaklaştı olacak aynı soru gibi görünüyor bakın Poul-Henning Kamp bulunuyor Sen O Yanlış Yapıyorsunuz bir örneği için uyumsuzluk.


10

Programlama dillerinde, yeni programlama dili yapıları veya yeni tip kontrol mekanizmaları için birçok fikir araştırılmaktadır (teorik olarak belki de uygulamadaki tecrübeyle bilgilendirilmektedir). Genellikle bu mekanizmalar hakkında resmi / teorik / kavramsal açıdan bir makale yazılır. Bunu yapmak oldukça kolay. Sırada ilk engel var: Yeni yapıları mevcut bir derleyici bağlamında uygulamak ve verimlilik veya esneklik açısından denemek. Bu da nispeten kolaydır.

Fakat programlama yapısının programlama biliminde bir ilerleme oluşturduğunu söyleyebilir miyiz? Program yazmayı kolaylaştırdığını söyleyebilir miyiz? Programlama dilini daha iyi hale getirdiğini söyleyebilir miyiz?

Cevap hayır. Bu tür soruları yanıtlamak için deneyimli programcıların uzun süre boyunca puanlarını içeren uygun bir ampirik değerlendirme gerekli olacaktır. Bu araştırma neredeyse hiç yapılmamıştır. Bir programlama dilinin (ve onun yapıları) değerinin tek yargısı, dilin popülaritesidir. Ve programlama dili uzmanları için bu, hipotezlerimizin bize söylediklerine aykırıdır.


7

Belki de sorunuzun motivasyonunu özlüyorum ama araştırmayı, algoritmaları ve diğer sonuçları motive eden birçok ampirik sonuç örneği var.

MP3 kullanımı psiko-akustik insan kodlama için bir algoritma optimize etmek.

π

Aynı çizgi boyunca, Bailey ve Borwein, deneysel matematiğin büyük savunucularıdır. Diğerlerinin yanı sıra " Pota Olarak Bilgisayar: Deneysel Matematiğe Giriş" , "Sayı Teorisinde Hesaplamalı Geziler" bölümüne bakın . Biri bunun daha deneysel bir Matematik olduğunu iddia edebilir, ancak bu seviyede tartışmanın ayrımsal bir anlam ifade ettiğini iddia ediyorum.

NP-Komple problemlerin faz geçişleri, ampirik sonuçların yoğun olarak kullanıldığı başka bir alandır. Bkz Monasson, Zecchina, Kirkpatrick, Selman ve Troyansky ve Gent ve Walsh pek çok fazlası (bkz olmasına rağmen, yeni başlayanlar için buraya kısa bir anket için).

Teorik Bilgisayar Bilimi veya Matematik seviyesine tam olarak bakılmasa da, burada unix yardımcı programının grep'in ortalama vaka çalışma zamanının nasıl en iyi duruma getirilmiş en kötü durum algoritmalarını aştığı hakkında bir tartışma var çünkü insanca okunabilir metinleri aramaya dayanıyor (grep kötü veya İçlerinde rastgele karakter bulunan dosyalarda en kötüsü).

Gauss bile , Asal Sayı Teoremi hipotezini vermek için deneysel kanıtlar kullandı .

Veri madenciliği ( Bellkor'un Netflix Ödülüne daha iyi bir öneri sistemi oluşturmak için sunduğu çözüm ) tamamen ampirik kanıtlara dayanan bir teori olduğu iddia edilebilir. Yapay Zeka (genetik algoritmalar, sinir ağları vb.) Büyük ölçüde deneye dayanır. Şifreleme, kod yapıcılar ve kod kesiciler arasında sürekli bir itme ve çekmeye devam ediyor. Gerçekten sadece birkaçını adlandırdım ve ampirik tanımınızı gevşetirseniz, daha da geniş bir ağ oluşturabilirsiniz.

Sorunuzu cevaplarken çok dağınık olduğum için özür dilerim ama umarım yardımcı olabilecek en az birkaç örnek verdim.

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.