Cara paling umum di mana nubuat muncul dalam teori kompleksitas adalah sebagai berikut: Sebuah nubuat tetap tersedia untuk, katakanlah, mesin Turing dengan sumber daya terbatas tertentu, dan seseorang mempelajari bagaimana oracle meningkatkan daya komputasi mesin.
Namun, ada cara lain di mana nubuat kadang-kadang terjadi: sebagai bagian dari input . Sebagai contoh, misalkan saya ingin mempelajari algoritma untuk menghitung volume polytope dimensi tinggi yang diberikan. Secara klasik, polytope perlu ditentukan dengan memberikan daftar sisi-sisinya atau representasi eksplisit lainnya. Namun, kami juga dapat menimbulkan masalah menghitung volume polytope yang ditentukan oleh a oracle volume, yang mengambil koordinat titik dalam ruang sebagai input dan output "ya" jika dan hanya jika titik yang diberikan terletak di dalam polytope. Kemudian kita dapat bertanya sumber daya komputasi apa yang diperlukan untuk menghitung volume polytope yang ditentukan dengan cara ini. Dalam kasus khusus ini kami memiliki skema perkiraan waktu polinomial yang sangat bagus dari Dyer, Frieze, dan Kannan dan, yang menarik dari sudut pandang teori kompleksitas, bukti bahwa keacakan membantu dengan cara yang esensial untuk masalah ini, dalam hal itu tidak ada algoritma deterministik yang dapat melakukan serta algoritma Dyer-Frieze-Kannan.
Apakah ada cara sistematis untuk mempelajari teori kompleksitas masalah di mana nubuat disediakan sebagai bagian dari input? Apakah itu entah bagaimana direduksi menjadi teori kompleksitas kelas yang biasa dengan nubuat? Dugaan saya tidak, dan itu karena ada terlalu banyak cara yang berbeda yang dapat diberikan oleh oracle sebagai bagian dari input, setiap masalah seperti ini harus ditangani secara ad hoc. Namun, saya akan senang terbukti salah pada titik ini.