Types of computational problems