Boyutları arttıkça kolaylaşan herhangi bir problem var mı?


62

Bu saçma bir soru olabilir, ancak girdilerin boyutu büyüdükçe gerçekten kolaylaşan bir problemin olması mümkün mü? Herhangi bir pratik sorunun bu şekilde olduğundan şüpheliyim ama belki de bu özelliğe sahip dejenere bir problem yaratabiliriz. Örneğin, belki büyüdükçe “kendini çözmeye” başlar veya başka bir tuhaf şekilde davranır.


7
Akla gelen bu özellik ile ilgili gerçek sorunlardan biri, "verilen hash, en az bir hash kırma" şeklinde formüle edildiğinde tuzsuz parola kırma çatlamasıdır. Çatlama hızı n ile doğrusal olarak ölçekleneceğinden, çalışma süresi 1 / n ile orantılı olacaktır - ancak çatlama stokastik olduğu ve zaman içinde sabit bir üst bağı olmadığı için kesin bir zaman atayamıyoruz.
öğlen

1
@ amon Çalışma süresi gibi ölçeklenmiyor . Zaman alır okumak için sadece size giriş olarak verilen oldum sağlamalarının! n n1/nnn
David Richerby

3
Mutlak mı yoksa göreceli olarak mı daha kolay demek istiyorsun? Hangi maliyet ölçütlerine izin veriyorsunuz? Kesinlikle maliyetin düşürülmesini mi istiyorsunuz yoksa artmıyor mu (bir noktadan itibaren) yeterli mi?
Raphael

2
@DavidRicherby Bu örnekte, mutlak maliyetle ilgili herhangi bir açıklama yapmadığım sürece girdi okuma maliyetini göz ardı etmek meşru olur. Bunun yerine, hız girişle doğrusal olarak artar. Bu nedenle, n • T (1)> T (n) girdi okuma maliyeti düşünüldüğünde bile. Yani, bu problem için büyük bir girişi bir seferde çözmek, problem bölünebilir olsa bile girişi bölmek yerine daha kolaydır. Tüm n için T (n)> T (n + 1) demiyorum.
öğlen

4
Formun başka bir cevabını göndermek isteyen herkes için, "Girdilerin bir soru olduğu bazı problemler ve cevapla ilgili çok sayıda ipucu": Bu işe yaramadı. Uzunluk en zor girişler tüm kullanmak olanlar soru sormak için bitleri ve hiçbir ipuçları verir. Kısa ipuçlarıyla birçok ipucu ile başa çıkmanın kolay olması, en kötü durumun iyi çalıştığı anlamına gelmez. nnn
David Richerby

Yanıtlar:


39

Hayır, mümkün değil: en azından asimptotik anlamda değil, problemin sonsuza dek, olarak daha kolay, daha kolay bir şekilde devam etmesini istersiniz .n

Let , örneğin bir sorun çözme, mümkün olan en iyi çalışma zaman n, giriş boyutudur. Çalışma süresinin algoritma tarafından yürütülen komut sayısının bir sayısı olduğunu, bu nedenle negatif olmayan bir tamsayı olması gerektiğini unutmayın. Diğer bir deyişle, T ( n ) N tüm n . Şimdi T : NN işlevini göz önüne alırsak, kesinlikle monoton bir biçimde azalan böyle bir işlev olmadığını görüyoruz. ( T ( 0 ) her ne ise, sonlu olmalı, T ( 0 )T(n)nT(n)N-nT:N-N-T(0) ; ancak T , monoton bir şekilde kesin olarak azaldığı için, T ( c ) 0 ve T ( c + 1 ) - 1 , bu imkansızdır.) Benzer sebeplerden dolayı, asimptotik olarak kesinlikle azalan hiçbir fonksiyon yoktur: bir çalışma süresi fonksiyonu yoktur T ( n ) vardır , n 0 , öyle ki tüm n n 0 , T ( n )T(0)=cTT(c)0T(c+1)-1T(n)n0nn0T(n) monoton bir şekilde kesin olarak azalmaktadır (böyle bir fonksiyonun sonunda negatif olması gerekir).

Dolayısıyla, böyle bir sorun var olamaz, çünkü çalışma sürelerinin negatif olmayan tamsayılar olması gerekir.


Bu cevabın sadece deterministik algoritmaları (yani en kötü durumdaki çalışma süresini) kapsadığını unutmayın . Beklenen çalışma süresi kesinlikle tekdüze azalan, sonsuza dek azalan rastgele algoritmaların olasılığını dışlamaz. Böyle bir algoritmanın var olup olmadığını bilemiyorum. Bu gözlem için Beni Cherniavsky-Paskin'e teşekkür ederim .


9
Bu güzel bir kanıt, ama öncülle aynı fikirde değilim. Kesin olarak monoton olarak azalan bir çalışma zamanı istemek yerine, soru, daha makul bir şekilde, a (b) 'nin olduğu bir işlevi gerektiriyor olabilir; bu nedenle, <(a)> T (b)' nin, yani kesinlikle monoton olmayan bir şekilde azalması. Daha sonra uygun tamsayı fonksiyonlarını bulmak elbette mümkündür. Ama neden tamsayılar? Çalışma süresinin bir komut sayımı değil (Turing makineleri hariç) bir zaman olduğunu ve T ifadesinin log () veya tamsayı olmayan üsleri gibi tamsayı olmayan işlemleri kullanabileceği izlenimi altındaydım.
öğlen

2
@ amon "çalışma süresi bir süre ile belirtilir, bir talimat sayılmaz" Kesinlikle hayır. Çalışma süresi her zaman bir talimat sayısıdır. Başka herhangi bir şeyin, inanılmaz bir şekilde birçok uygulama detayına bağlı olacağı gibi sebep göstermesi imkansız olacaktır.
David Richerby

3
Sorunun belirsiz olduğu gibi, maliyet işlevini nasıl dışladığını anlamıyorum . Şimdi, T ( n ) ~ n ancak T ( n ) n 2 "küçük" için n , bu yüzden sorun nispeten konuşma, "daha kolay olur". (Mutlak maliyetler elbette asimptotik olarak artar). T(n)=n2(1+ϵ)n+nT(n)~nT(n)n2n
Raphael

2
@Raphael, daha kolay elde bir sorun değildir: T ( n ) olarak büyüdükçe n büyüdükçe, bu nedenle sorun zorlaşır n büyüdükçe, bir kez n yeterince büyük. Cevabımın ilk cümlesinde, hiçbir sorunun sonsuza dek daha kolay olmayacağını söylemiştim. Elbette, bir problem bir süre daha kolaylaşabilir ( T ( n ) , n for c için düşüyor olabilir), fakat bu sonsuza dek daha kolay olmaya devam edemez. T(n)~nT(n)nnnT(n)nc
DW

1
Tamsayı zamanlarında bile, randomize bir algoritma için beklenen süre (veya dağılımın herhangi bir başka ölçüsü) kesirli olabilir ve kademeli olarak yukarıdan bir sabite yaklaşabilir. [Bu, bu tür sorunların aslında var olduğu anlamına gelmez, yalnızca "böyle bir işlev mevcut değil" argümanı yetersizdir.]T
Beni Cherniavsky-Paskin

25

Sorunuza bir cevap olmasa da, Boyer-Moore string arama algoritması yaklaşıyor. Robert Moore’un dediği gibi web sayfasında algoritma hakkında

Algoritmamız, kabaca bakıldığında, kalıp ne kadar uzun olursa, algoritma o kadar hızlı ilerleyen tuhaf bir özelliğe sahiptir.

Başka bir deyişle, genellikle algoritmanın konuşulması bir kaynak dizgideki bir hedef dizginin bir örneğini arar ve sabit bir kaynak dizgiyi arar, hedef dizgi ne kadar uzunsa, algoritma o kadar hızlı çalışır.


10
Muhtemelen, model problemin büyüklüğü değil, aranan dizenin uzunluğu. Olduğu gibi yukarıdaki David Richerby yorumuyla , ben desen uzunluğu sorunu çözmek konusunda bir ipucu daha iddia ediyorum bir kalıp belli uzunlukta bir dize eşleşirse problemin kendisi (görmekten daha (dize arama hakkında daha var) .)
Kevin

4
Deyim uzunluğu bir desen arama düşündürmektedir @Kevin bir uzunluğunmetnin uzunluğu bir desen arama daha hızlıdırgünlükn. Bu tür sabit ilişki girdilerine (yani, dizelerin çiftleri) baktığımızda, Rick'in (klasik, asimptotik anlamda değilse) soruna uygun bir cevap verdiğini düşünüyorum. nnkütükn
Raphael

10

Açıkçası, saf bir matematik, tamamen CS algoritması bakış açısından bu imkansız. Fakat aslında, projenizi ölçeklendirmenin, son kullanıcılar için sezgisel olmayan pek çok şeyi kolaylaştırdığı zaman, gerçek dünyadan birkaç örnek var.

Yol tarifleri: Yol tarifleriniz uzadıkça, bazen daha kolay olabilir. Örneğin, Google Haritalar’ın 3000 mil batıya gitmem için bana yol tarif etmesini istiyorsam, Batı Kıyısı’na gidebilirim - ve şehirlerarası sürüş talimatlarını alabilirim. Fakat 6000 mil batıya gitmek isteseydim, daha basit talimatlarla bitirdim: NYC'den Hokkaido'ya uçakla. Bana trafik, yollar, hava durumu vb. İçeren bir arazi rotası verilmesi algoritmik olarak oldukça zordur, ancak bana bir uçağa binmeyi ve bir veritabanında uçuşları aramamı söylemek nispeten daha basittir. Mesafe vs zorluk ASCII grafiği:

           |     /
           |    /
Difficulty |   /                  ____-------
           |  /           ____----
           | /    ____----
            ---------------------------------
                       Distance

Rendering : Diyelim ki bir yüzün renderini ve 1000 yüzün renderini istiyorum; bu bir reklam panosu reklamı içindir, bu yüzden her iki son resim de 10000 piksel x 5000 piksel boyutunda olmalıdır. Bir yüzünü gerçekçi bir şekilde oluşturmak zor olacaktır - karşınızdaki birkaç bin pikselin çözünürlüğünde gerçekten güçlü makineler kullanmak zorundasınız - ancak 1000 yüz kalabalık için her yüzün sadece on piksel olması gerekir ve kolayca klonlanabilir! Dizüstü bilgisayarımda muhtemelen 1000 yüz oluşturabiliyordum, ancak 10000 piksel boyutunda gerçekçi bir yüz oluşturmak çok uzun zaman alacak ve güçlü makineler alabilecekti. ASCII görüntülenen nesnelere karşı zorluk grafiği, n nesnelerin belirli boyutta bir görüntüye getirilmesinin zorluğunun ne kadar çabuk düştüğünü ancak sonra yavaşça geri döndüğünü gösterir:

           | -    
           |- -                     _________
Difficulty |   --      ______-------            
           |     ------      
           |       
            ---------------------------------
                        Objects

Donanım kontrolü : Donanımla ilgili birçok şey çok daha kolay. "Motor X 1 derecesini hareket ettir" zor ve / veya imkansızdır ve "X 322 dereceyi hareket ettir" motoruyla uğraşmak zorunda kalmayacağınız her türlü şeyle uğraşmanız gerekir.

Kısa süreli görevler: X öğesinin her saniye açık kalmasını istediğinizi (çok az miktarda) söyleyin. X'in çalışma süresini artırarak, donanımın yanı sıra daha az karmaşık yazılıma ihtiyacınız olacaktır.


"Yön" örneğinizde, lütfen hesaplama probleminin tam olarak ne olduğunu ve örnek nedir olduğunu belirtin. 6 kilometrelik örneğinizin daha büyük bir örnek veya sadece bir şeyin kolay bir parçası olduğu benim için net değil (örneğin, size geniş bir grafik bağlantılı grafik artı bir izole edilmiş tepe noktası verirsem, genel olarak en kısa yolları sormaktır). "zor" ancak izole edilmiş tepe noktasından herhangi bir yere en kısa yolu sormak önemsizdir). Yine, oluşturma örneğiniz için gerçek hesaplama problemi nedir? Karmaşıklığı ölçtüğünüz örnek nedir?
David Richerby,

Render örneği aynı problemin örnekleri gibi gözükmüyor: İlki tekil bir görüntü veriyor; ikincisi birçok küçük görüntüyü oluşturmak ve ardından bu görüntülerin birden fazla kopyasını bir alana yapıştırmak.
David Richerby

Parametreleri gezmek için 2 şehrin adı olacağını ve n'nin onları kodlayacak karakter sayısı olacağını düşünüyorum.
emory

3

Davalar var. Tek bir cevap bulmaya çalışmak yerine başarı kriterlerinin verinin bir işlevi olduğu durumlardır. Örneğin, sonuçları güven aralıklarıyla ifade edilen istatistiksel işlemler daha kolay olabilir.

Düşündüğüm özel bir durum, akışkan akışları gibi ayrık davranışlardan sürekli davranışlara geçişi olan problemlerdir. Küçük problemi bir dereceye kadar bir hataya çözme, bir süper bilgisayar gerektirebilecek tüm ayrık etkileşimlerin modellenmesini içerebilir. Sürekli davranışlar genellikle ilişkili bir hatanın dışında sonuç vermeden basitleştirmelere izin verir.


2

Soru ilginç ve FAYDALI, çünkü bilişimdeki felsefemiz problemleri çözmek, daha zor okudukça. Ancak, gerçekte, tipik bir şekilde (zor) sunulan sorunların EN ÇOK kolay bir şekilde "kolay" şekilde gösterilebilir; DW'nin cevabını bilmek bile (ki bunun kolay olduğunu düşünmek yanlış değildir, daha hızlı anlamına gelmez, "daha az yavaş" anlamına gelir; bu yüzden olumsuz zamanlar bulmak zorunda değilsiniz, asimptotik zaman bulmaktan kaçınırsınız).

Bir tane bulmanın püf noktası, çözümün ipucu gibi kısmını bir giriş olarak koymak ve sorunun girişini sabit bir parametre gibi ele almaktır.

Örnek: Londra ve Paris arasındaki arabada, bir Fransız ve İngiliz kasabasını iki kez ziyaret etmekten kaçınmak ve başka bir ülkeyi ziyaret etmekten kaçınmanın en kolay yolu nedir? Birmingham’a gitmeden önce Ashford’dan, Orleans’tan Versailles’den önce, La Rochelle’den Limoge’dan önce gitmek zorundasınız.

Uzun kayıtlarla bu sorunun kısa sorunlarla daha kolay olacağı açıktır.

Kullanım örneği: Makine tarafından yönetilen bir oyun oyunu hayal edin ve bilgisayarın IA'sı, daha fazla ipucu bulmak için oyunda daha fazla araştırma yapması gerekip gerekmediğini belirlemek zorundadır. .


2
Örneğiniz çalışmıyor. Büyük olan örnekler, ipuçlarının grafiğin köşelerinin doğrusal bir sırasını belirleyeceği o kadar çok ipucuna sahip olduklarından gerçekten kolaydır. Ancak, büyük olan örnekler, neredeyse hiç ipucu olmayan geniş bir grafik verdikleri için sıradan Hamilton yolu problemi kadar zor. Bu nedenle, bu problemi çözen herhangi bir algoritmanın en kötü çalışma süresi, en azından "süper kolay" gibi görünmeyen Hamilton yolu için en iyi algoritmanın en kötü çalışma süresi kadar kötü olacaktır.
David Richerby

@David, cevabınız tamamen yanlıştır: 1. Giriş bir grafik değildir: büyük grafik bir PARAMETRE'dir. Böylece, hamilton problemi bir sabite (çok büyük ama sabittir) dönüştürülür. 2. GiriĢ, sorunun özümüdür, bu nedenle: eğer daha büyükse, ipuçlarının birleĢtirici bir açıklamasını sunuyoruz. Bir ipucunun girilmesi bir yardım sağlar, iki ipucu iki, üç ipucu 4'e iki yakın olacaktır ... çünkü olası çözümleri ortadan kaldırıyorsunuz. Yani, bu bir Hamiltonyen değildi, bu spesifik bir grafikten bir çözümdür ve sorun çözümlerin bazı bölümleriyle NE YAPACAKTIR.
Juan Manuel Dato

Büyük örneklerin bir anlamda "kolay" olması nedeniyle argümanınızın ilginç olduğunu düşünüyorum, ancak asıl sorunun cevabını nihayetinde "hayır" olduğunu düşünüyorum. Grafik sonlu olduğu için, sadece son derece muhtemel ipuçları vardır. Bu nedenle, her örnek sabit bir sürede (örneğin bir arama tablosu kullanarak) çözülebilir. (Asimptotik) bilgisayar biliminde daha büyük örnekler (sezgisel olarak) daha kolay olsa da, tüm örnekler eşit derecede zordur (sabit zamanda çözülebilir).
Tom van der Zanden

@Tom, karmaşıklığa ilişkin düşüncelerinizin sabit olacağına katılıyorum, ancak sorun şu ki yeni ipuçlarını nasıl kabul ediyoruz: uzun girişi hesaplama felsefemiz kısa bir girişten daha iyi değilse, felsefemizi değiştirmeliyiz - Çünkü bu bir gerçek: Uzun kayıtlar daha kolay problemler anlamına geliyor. Böylece bu şekilde çalışamayız ... Kitabımı tavsiye ederim, ancak itibarım yok ...
Juan Manuel Dato

nkütükn

1

Bir parola hakkında bildiklerinizi girdi olarak alan ve daha sonra şifresini kırmaya çalışan bir program düşünün. Sanırım istediğini yapıyorsun. Örneğin:

  • Giriş yok -> Kaba kuvvet, tüm semboller üzerinde ve herhangi bir uzunlukta bir kelime üzerinde çatlamaz
  • Şifre uzunluğu -> Brute, tüm sembolleri bu uzunluktaki bir kelimeyle zorlar.
  • İçerdiği semboller -> Kontrol edilecek sembollerin listesini küçültür
  • ...
  • Birden fazla oluşum ve uzunluk içeren İçeren Semboller -> Yalnızca hesaplama izinleri
  • Tüm simgeler doğru sırada -> temelde kendisi çözüldü

Bunun bir numara olduğunu eklemeliyim, çünkü bunun gibi belirtilen sorun girdi boyutuna terstir. Bir soyutlama katmanı bırakabilir ve giriş boyutunun giriş için büyük olmadığını (kelimelerin tüm sembollerini ve uzunluklarını kontrol edin) ve başlangıçta doğru şifreyi girerseniz küçük diyebilirsiniz.

Böylece her şey ne kadar soyutlamaya izin verdiğinize bağlı olarak ortaya çıkıyor.


2
b

0

Aslında, veriler arttıkça küçülecek bir sorunum var. Uygulamamdan biri, belirli bir ürünün özelliklerini kaydetti. Öznitelikler örneğin CheeseType, Marka, Ülke, Alan, MilkType, vs.dir. Her ay ya da öylesine, piyasaya giren bu zaman zaman, peynirlerin özniteliklerinin bir listesini alırım. Şimdi, bu nitelikler bir grup insan tarafından elle yazılmıştır. Bazıları yazım hatası yapar veya tüm özelliklerin değerini bilmez.

Veritabanımda arama yaparken, bu özelliklere dayanarak peynirin tadının ne olduğunu istatistiklerden tahmin etmeye çalışıyorum. Olan şudur, her özellik için bir değer aralığı ile bitirdim; bazıları geçerli, bazıları geçersiz. Bu geçersiz olanları ortadan kaldırmak veya düzeltmek ancak yeterli veriye sahipsem mümkün. Nadir fakat geçerli değerleri elimine etmeden, gerçek değerler ile gürültü arasındaki farkın yaratılmasıyla ilgilidir.

Tahmin edebileceğiniz gibi, düşük ses seviyesinde, sesleri düzgün şekilde düzeltmek için çok önemlidir. 5 Cheddar örneği varsa, 1 Brie, 1 Bri ve 1 Chedar varsa, hangisinin doğru, hangisinin yazım hatası olduğunu nasıl anlarım? Daha fazla hacimde, yazım hataları çok düşük olma eğilimindedir, ancak nadir değerler, gürültüden kaçmalarını sağlayan çok önemli artışlar elde eder (deneyim tarafından desteklenir). Bu durumda, örneğin 50000 Cheddar, 3000 Brie, 5 Bri, 15 Chedar hayal edebiliyorum.

Yani evet, bazı problemler sonunda yeterli veriye sahip olduğunuzda kendilerini çözerler.


1
Bu olağan bir nedenden dolayı başarısız olur. Büyük bir girdi, insanların size birkaç peynir çeşidinden bahsettikleri bir miktardan ziyade birçok peynir türünden bahsettikleri ancak bazıları yanlış heceleyen bir girdi olabilir. Ayrıca, "kolay" ın "sonuçta daha fazla güven sağlamaya izin ver" olarak yorumlanması gerektiği açık değildir.
David Richerby

Bu, düşük miktarda veri ile çözülemeyen gerçek bir problemdir (zaten iki kez yaşadım). Hacim arttıkça yanlış değerlerden iyi değerleri ayırt etmek kolaylaşır ve hatta ayırt edilmesi kolaylaşır. “Boyutu arttıkça kolaylaşan herhangi bir sorun var mı?” Sorusunu yanıtlamanın yararı var. Kaç çeşit peynirin ortaya çıktığı önemli değildir, nihayetinde yeterli miktarda, tipolardan daha fazla “vuruş” olacaktır. Bu cs sorunlar farklıdır ve bunları çözme bazen sonuçlarında daha üst güven duymak konusunda sadece bu yüzden, .stackexchange değil matematik.
chris

Bu aynı zamanda Number TV dizisinin öncül türü değil mi? Ya da en azından bazı bölümler - Biliyorum ki, matematik görevlisinin sorunu çözmek için kullandığı algoritmanın daha büyük bir veri setiyle daha etkili olduğunu söylediği bir sahneyi özellikle hatırlıyorum.
Dan Henderson,

2
"Daha etkili olur"! = "Kolaylaşır".
David Richerby,

-1

NP-komple sorunu 3-SAT olarak düşünün. Eğer x_i = true / false formunun girişlerini sağlayarak problemi arttırmaya devam ederseniz, ya bireysel ayrıklıkları iki değişkenli cümle haline getirir, böylece kesin olarak P olan bir 2-SAT problemi yaratırsınız ya da sadece doğru / yanlış bir cevap.

X_i = true / false girişlerinde fazlalık olması durumunda (aynı giriş birçok kez sağlandı veya çelişkili girişler) girişleri kolayca sıralayabilir ve gereksiz değerleri göz ardı edebilir veya değerler çelişiyorsa bir hata rapor edebilirsiniz.

Her durumda, bunun girdi sayısı arttıkça çözülmesi kolaylaşan 'gerçekçi' bir sorunu temsil ettiğini düşünüyorum. 'Kolay' yönü, NP tamamlanmış bir sorunu P sorununa dönüştürmektir. Sadece sıralama problemi zorlamaktan daha uzun sürecek şekilde saçma girdiler sağlayarak sistemi hala oynatabilirsiniz.

Şimdi, gerçekten harika bir senaryo, eğer kabul etmek istiyorsak, T (0) (yukarıdaki DW cevabı göstergesini kullanarak) sonsuz olabilir. Örneğin, T (0), Turing'in Durma Problemini çözmeye eşdeğer olabilir. Daha fazla girdi eklemek sorununu çözülebilir bir soruna dönüştürecek bir sorun tasarlayabilirsek, altını çarptık. Asimptotik olarak çözülebilir bir soruna dönüştürmenin yeterli olmadığını unutmayın; çünkü bu, sorunu zorlamak kadar kaba bir şeydir.


1
Bu belirli girişler daha kolay hale gelir. Ancak, tüm olası girişleri genel olarak düşündüğünüzde, 3SAT genel olarak daha fazla cümle eklerken çok daha zorlaşır: zor girdiler, bu "ipucu" cümlecikleri olmayanlar. Genel girişlere izin vermiyorsanız, tam olarak hangi girişlere izin verdiğinizi belirtmeniz gerekir.
David Richerby

Öncelikle: Daha fazla girdi eklemenin çalışma süresini artırabileceğini kabul ediyoruz. Esasen yukarıda aynı şeyi söylüyorum. İkincisi, açıkça mevcut bir 3-SAT alıyoruz ve yalnızca x_i = true / false biçimindeki girdileri ekliyoruz. Bunun yeterince açık olduğunu ve daha fazla açıklama yapmak zorunda olmadığımı düşünüyorum. Sanırım yazdıklarımın en yanlış yorumlanmasını sağlamakta zorluk çekiyorsun. Lütfen kendini üzme.
v vv cvvcv

1
Yok gerçekten. Hangi hesaplama problemini çözüyorsunuz? Hesaplamalı bir sorun, bir dizi dizenin üyeliğine karar vermektir (diyelim ki kodlama ile ilgili sıkıntılardan kaçınmak için bir dizi formül diyelim). Sette uzun bir formül olup olmadığına karar vermenin, kısa bir formülün sette olduğuna karar vermekten daha kolay olduğunu iddia ettiğiniz formül kümesi nedir? Bunu kesin olarak yapmaya çalıştığınız anda, talebinizin ayrılacağından eminim.
David Richerby

Lütfen 'benim iddiam' anlayışınızı açıkça belirtebilir misiniz? Bunu kesinleştirmeye çalıştığınız anda, internet bant genişliğini boşa harcayacağınızdan eminim.
v vv cvvcv

Ben bir bilgisayar bilimcisiyim, zihin okuyucu değil. Talebinizi kesinleştirmek benim işim, benim değil.
David Richerby

-1

Soru şu: “Girdilerin büyüklüğü arttıkça gerçekten daha kolay bir problemin olması mümkün mü?” Girdiler , bir iş üzerinde çalışmak için algoritma tarafından kullanılacak kaynaklar ise. Kaynaklar ne kadar iyi olursa o kadar yaygındır. Aşağıda çalışanlar ne kadar fazla olursa o kadar iyi olduğu bir örnek verilebilir.


n
tp


n

3) Çıktı: Çıktı
, çalışanlar tarafından alınacak görevler arasındaki yoldur. Her yol, onu alan çalışanların sayısıyla ilişkilidir. Örneğin:

n1
n2
n3
n4
n5

4) Olası çözüm:
Olası bir çözüm, ilk önce A'dan en yakın düğümlere giden en kısa yolu hesaplamaktır. Bu, ileriye dönük bir yol olacaktır. Ardından, ziyaret edilen her görev için ilerideki yolu yinelemeli olarak hesaplayın. Sonuç bir ağaçtır. Örneğin:

          bir
      İSA'DAN ÖNCE
    DE

nn1n2n20

n=n=1

n


6
Düşüncelerinizi paylaştığınız için teşekkür ederiz. Normal olarak bilgisayar bilimlerinde bir bit dizisini girdi olarak kabul etmek ve başka bir bit dizisini çıkarmak için bir algoritma anlaşılır. Bu standart anlayışla, bu cevabın nasıl bir anlam ifade ettiğini anlamıyorum. Akılda farklı bir algoritma kavramına sahipseniz, algoritmayı kastettiğinizi açıklamak için soruyu düzenlerseniz, bu terimi standart kullanımına uygun bir şekilde kullanmıyor gibi göründüğünüz için yardımcı olacağını düşünüyorum. terim, anladığım kadarıyla).
DW

Giriş sadece bir sayı olabilir (kaynak sayısı). Bu, algoritmanın geçmesi gereken ekstra hesaplama sayısını etkileyecektir. Daha somut bir örnek vermek için cevabı düzenleyeceğim.
yemelitc

Düzenlemeniz için teşekkürler - bu çok daha net hale getirir. Şimdi, çözümü ilk olarak düşündüğüm gibi gerçekleştirme maliyetiyle hesaplama maliyetini karıştırmayacağınızı görüyorum. Ama şimdi olağan durumdayız. İlk önce, girişi okumak en az doğrusal zaman alır. İkincisi, zor örnekler, küçük bir ağaç ve bir gazillion insanı verdiğiniz yerler değil, büyük bir ağaç ve görece az insan verdiğiniz yerler değildir. (Örneğin, bana bir milyon bit verirseniz, yaklaşık bin köşeli bir ağaç seçerim ve beş köşeli bir ağaç değil, beş kişiyi veririm.)
David Richerby

Katılıyorum. Görünüşe göre hepimiz son derece eleştirel gözüktük, orijinal sorunun bize gösterdiği şeyin aksine! Ama umarım “kaynak olarak girdi” fikrimi anlarsınız: iş ne kadar büyük olursa olsun, ne kadar çok insan olursa o kadar iyi. Yine de asimptotik bir anlamda kesinlikle haklısınız, negatif olmayan tamsayılar için suçlamalıyım.
yemelitc
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.