En resmi anlamda, girişin boyutu algoritmanın Turing Machine uygulamasına göre ölçülür ve girişi kodlamak için gereken alfabe sembollerinin sayısıdır.
Bu elbette oldukça soyut ve pratikte çalışmak çok zor ya da en azından çok sinir bozucu - sınırlayıcıları vb. Nasıl belirleyeceğimizi düşünmemiz gerekecek. Vb. bir vekil girdi büyüklüğü ölçümü - daha rahat ve erişilebilir, ama bu analizimizde herhangi matematiksel problemleri neden olmaz bir şey.
"Abcde" örneğinizi kullanmak, normalde giriş için kullandığımız alfabenin küçük olması durumunda olur, bu nedenle karakterlik proxy ölçümünü kullanarak bile, Turing Machine'de bile, rahatsız olursak, "abcde" değerini , bazı sabit için uzunluğu en fazla olan bir kodlanmış forma dönüştürecek bir girdi kodlaması belirtin . Bir sabitin bu genişlemesi, sabit faktörleri rutin olarak attığımız için, asimptotik analizimizde tipik olarak hiçbir fark yaratmaz.5 × c c55 × c c
Farklı bir durumda, genellikle bir girdi grafiğinin boyutunu köşe sayısı ölçeriz . Açıkça keyfi olarak büyük grafikler belirtmek istiyorsak, kodlanmış girişin boyutu sadece değildir - kenarlara ne oldu, örneğin? Bildiğimiz, grafiği bit cinsinden temsil eden makul bir kodlama şeması kullanabileceğimizdir . Bu, sabitten biraz daha fazla bir genişlemedir, ancak birçok ilginç durumda, sadece polinomların ayrıntılı bir kısmındaki şeylerle uğraşıyoruz ve polinomlar birçok şekilde güzel bir şekilde oluşturuyor - özellikle, örneğin, bizim çalışma süresi olduğunu belirlemek bir polinom, bazı polinom sonra bildiğimiz olduğunun N = c ⋅ n 2 log n O ( p ( n ) ) p p ′ O ( p ( n ) ) = O ( p ′ ( N ) )nnN-= c ⋅ n2günlüknO ( p ( n ) )pp' öyle ki , bu yüzden girişin resmi ölçüsüne geri döndüğümüzde, hala polinom zamanındayız.O(p(n))=O(p′(N))
Bunun düşebileceği bir yer sayılarla çalışırken. büyüklüğüne sahip bir sayı bit olarak kodlanabildiğinden, çalışma süremiz , bu - gerçek giriş boyutunda üstel - örneğin , üyeliği hakkında konuşmak istersek , büyüklük giriş boyutu için bir proxy için kötü bir seçim yapar (örneğin Güçlü- matematik -tam ve Zayıf- -tam, bunu hatırla). Öte yandan, ilgilendiğimiz tek şey karar verilebilir olsaydı, o zaman yeterince iyi bir vekil önlem olurdu.n = O ( log m ) O ( m ) O ( 2 n ) m P N P N Pmn=O(logm)O(m)O(2n)mPNPNP
Bu nedenle, giriş boyutu için bir proxy ölçüsü seçmek için belirlenmiş bir kural olmasa da, gereksinim, proxy boyutunun giriş boyutuyla karşılaştırıldığında genişletilmesinin veya daralmasının kanıtlamaya çalıştığınız şeyle uyumlu olması gerektiğidir. Genel bir kural olarak, sabit faktör değişiklikleri neredeyse hiç önemli değildir, küçük polinom faktörleri normalde iyidir ve gördüğünüz temel teorinin çoğu için işe yarar, büyük polinom faktörleri teori için hala işe yarayabilir, ancak pratikte kötü bir sürpriz olabilir, üstel değişim miktarları normalde çok fazladır.