Кіріспе

Компьютер шеше алатын проблема. Теориялық компьютерлік ғылымда есептеу проблемасы – алгоритм арқылы шешілетін проблема. Мысалы, "Оң бүтін сан n берілгенде, n-нің тривиалды емес жай көбейткішін табыңыз" деген факторлау мәселесі есептеу проблемасы болып табылады. Есептеу проблемасын әрбір мысал/жағдай үшін шешімдер жиынтығы (бос болуы мүмкін) бар мысалдар немесе жағдайлар жиынтығы ретінде қарастыруға болады. Мысалы, факторлау мәселесінде мысалдар – n бүтін сандары, ал шешімдер – n-нің тривиалды емес жай көбейткіштері болып табылатын p жай сандары. Есептеу проблемалары теориялық компьютерлік ғылымдағы негізгі зерттеу нысандарының бірі болып табылады. Есептеу күрделілігі теориясы белгілі бір мәселені шешу үшін қажетті ресурстардың (есептеу күрделілігі) мөлшерін анықтауға және кейбір проблемалардың неге шешілмейтінін немесе анықталмайтынын түсіндіруге тырысады. Есептеу проблемалары күрделік сыныптарына жатады, олар оларды әртүрлі абстрактілі машиналармен есептеу (шешу) үшін қажетті ресурстарды (мысалы, уақыт, кеңістік/жад, энергия, тізбек тереңдігі) анықтайды. Мысалы, күрделік сыныптары: P – детерминистік классикалық машиналар үшін полиномиалдық уақытты тұтынатын проблемалар; BPP – ықтималдық классикалық машиналар үшін полиномиалдық уақытты тұтынатын проблемалар (мысалы, кездейсоқ сандар генераторлары бар компьютерлер); BQP – ықтималдық кванттық машиналар үшін полиномиалдық уақытты тұтынатын проблемалар. Мысалдар мен шешімдер {0, 1}* элементтері – бинарлық тізбектермен бейнеленеді. Мысалы, натурал сандар көбінесе екілік кодтау арқылы бинарлық тізбектер ретінде бейнеленеді. Бұл маңызды, себебі күрделік кіріс дерегінің ұзындығының функциясы ретінде өрнектеледі.

Шешім проблемасы

Шешімдік мәселе – әрбір мысал үшін жауабы «иә» немесе «жоқ» болатын есептеу мәселесі. Шешімдік мәселеге мысал – жай сан тестілеу: «Оң бүтін сан n берілген болса, n жай сан екенін анықтаңыз». Шешімдік мәселе әдетте жауабы «иә» болатын барлық мысалдардың жиынтығы ретінде көрсетіледі. Мысалы, жай сан тестілеуін шексіз жиынтық L = {2, 3, 5, 7, 11, …} ретінде көрсетуге болады.

Іздеу мәселесі

Іздеу мәселесінде жауаптар кез келген жолдар болуы мүмкін. Мысалы, санның жай көбейткіштерін табу – бұл іздеу мәселесі, онда мысалдар оң бүтін сандардың (жол түрінде) және шешімдер жай сандардың жиынтығының (жол түрінде) өрнектері болып табылады. Іздеу мәселесі барлық мысал-шешім жұптарынан тұратын қатынас ретінде көрсетіледі, бұл қатынас іздеу қатынасы деп аталады. Мысалы, санның жай көбейткіштерін табу келесі R = {(4, 2), (6, 2), (6, 3), (8, 2), (9, 3), (10, 2), (10, 5)} қатынасы арқылы бейнеленуі мүмкін, мұнда p – n санының жай көбейткіші.

Санау мәселесі

Санау мәселесі берілген іздеу мәселесінің шешімдерінің санын анықтауды талап етеді. Мысалы, көбейткіштерге қатысты санау мәселесі мынадай:

"Оң бүтін сан n берілген болса, n-нің тривиалды емес жай көбейткіштерінің санын санаңыз."

Санау мәселесін {0, 1}* жиынынан теріс емес бүтін сандарға дейінгі f функциясы арқылы көрсетуге болады. R іздеу қатынасы үшін, R-мен байланысты санау мәселесі fR(x) = |{y: R(x, y)}| функциясы болып табылады.

Оптимизациялау мәселесі

Оптимизациялау мәселесі іздеу мәселесінің барлық мүмкін шешімдері ішінде "ең жақсы" шешімді табуды талап етеді. Мысалы, ең үлкен тәуелсіз жиынтық мәселесі: "G графы берілген, G-нің ең үлкен тәуелсіз жиынтығын табыңыз". Оптимизациялау мәселелері мақсаттық функциясы және шектеулері арқылы сипатталады.

Функционалдық мәселе

Функциялық мәселеде әрбір кіріс үшін жалпы функцияның бір ғана шығысы күтіледі, бірақ бұл шығыс шешімдік мәселеге қарағанда күрделірек, яғни ол жай ғана "иә" немесе "жоқ" емес. Ең әйгілі мысалдардың бірі – саяхатшы саудагерінің мәселесі: "Қалалар тізімі және әрбір қала жұбы арасындағы қашықтық берілген жағдайда, әр қалаға бір рет барып, бастапқы қалаға оралатын ең қысқа маршрутты табыңыз". Бұл комбинаторлық оптимизациядағы NP-қиын мәселе болып табылады және операциялық зерттеулер мен теориялық информатикада маңызды рөл атқарады.