Aşağıdaki algoritmik görevi göz önünde bulundurun:
Girdi: pozitif bir tam sayı , onun ana çarpanlara birlikte
Bul: pozitif tamsayı en aza indirmek , kısıtlamaya tabi
Bu sorunun karmaşıklığı nedir? Polinom-zaman algoritması var mı? NP-zor mu?
Bu problem temel olarak şunları soruyor: hacmi , boyutları ise tam sayı olan, hangisinin en az yüzey alanına sahip olduğu tüm dikdörtgen katılardan ?
Bu problem Dan Meyer tarafından, 1000 Matematik Öğretmeninin Çözemediği Matematik Problemi başlığı altında ortaya çıkmıştır . Şimdiye kadar birlikte çalıştığı matematik öğretmenlerinden hiçbiri bu sorun için makul bir algoritma bulamadı. Bu bağlamda, “makul” un tanımı biraz kesin değildir, ancak bilgisayar bilimcileri olarak bu sorunun karmaşıklığı hakkında daha kesin bir soru sorabiliriz.
Açık olan yaklaşım, için tüm olasılıkları sıralamaktır , ancak bu üssel zaman almaktadır. Dan Meyer'in blogundaki yorumcular maalesef yanlış olduğu ortaya çıkan birçok etkili aday algoritması önerdiler. Martin Strauss , bu sorunun belirsiz bir şekilde 3 bölümlemeyi hatırlattığını gösteriyor , ancak bir düşüş göremiyorum.
Ayrıca yorumlarda / cevaplarda gördüğüm yanılgıları da gidermeme izin verin:
İki bölümün nesnel işlevleri farklı olduğundan, her sayısını 2 q ile değiştirerek 3 bölümden azaltamazsınız . Açıkça görülen azalma sadece işe yaramadı.
Optimal çözeltisi bir toplama içerir doğru değildir ve en yakın böleni için için . Bunun olduğunu sanan çok sayıda insan görüyorum, ama aslında bu doğru değil. Bu zaten Dan Meyer blog yazısında ispatlanmıştı. Örneğin,; ve 4 bölme 68, aşağıdakilerden en az biri düşünebilir böylece4 olmalıdır; Ancak, bu doğru değil. En uygun çözüm,,. Başka bir karşı örnek,, ancak en uygun çözüm,,. (Olabilirtüm bu doğru, en iyi çözüm arasında az birinde yapılmasını içerir, en küçük bölen iki eşitdaha büyük veya3 smaller'dan küçüken büyük bölen - Şu anda bir karşı örneğim yok - ancak bu ifadenin doğru olduğunu düşünüyorsanız, kanıtlanması gerekir. Bunun kesinlikle doğru olduğunu kabul edemezsiniz.)
“ aynı boyutta olun”, her durumda mutlaka en uygun cevabı vermiş gibi görünmüyor; karşı örnekler için Dan Meyer'in blog yazısına bakınız. Veya en azından "kabaca aynı boyuta getir" ifadesinin bazı makul yorumları için, bu stratejinin aslında en uygun olmadığını gösteren karşı örnekler vardır. Bu tür bir strateji denemek istiyorsanız, iddiayı tam olarak belirttiğinizden emin olun ve sonra dikkatli bir matematik kanıtı sağlayın.
Bir işletim süresi polinom değildir. Bu problemin P olması için, çalışma süresi giriş uzunluğunda bir polinom olmalıdır . Girdi uzunluğu gibi bir şey lg n , değil n . Bariz kaba kuvvet algoritması O çalıştırmak için yapılabilir ya da O ( n, 2 ) süresi, ama bu üstel içinde lg , n ve üstel zamanlı algoritması olarak bu şekilde sayar. Böylece bu yardımcı olmuyor.