Pumping Lemma არის ფუნდამენტური ინსტრუმენტი გამოთვლითი სირთულის თეორიის სფეროში, რომელიც საშუალებას გვაძლევს განვსაზღვროთ ენა რეგულარულია თუ არა. Pumping Lemma-ს თანახმად, იმისათვის, რომ ენა იყოს რეგულარული, სამი პირობა უნდა იყოს დაკმაყოფილებული. ეს პირობები შემდეგია:
1. სიგრძის პირობა: პირველი პირობა ამბობს, რომ ნებისმიერი სტრიქონი ენაში, რომელიც საკმარისად გრძელია, არსებობს სტრიქონის დაშლა სამ ნაწილად, u, v და w, ისე, რომ v-ის სიგრძე ნულზე მეტია და მუდმივ მნიშვნელობაზე ნაკლები ან ტოლი, ხოლო u, v და w-ის შეერთება კვლავ ენაშია. სხვა სიტყვებით რომ ვთქვათ, ენა უნდა შეიცავდეს სტრიქონებს, რომლებიც შეიძლება დაიყოს სამ ნაწილად, სადაც შუა ნაწილი შეიძლება განმეორდეს რამდენჯერმე და შედეგად მიღებული სტრიქონი კვლავ ენაშია.
2. Pumping Condition: მეორე პირობა ამბობს, რომ ენის ნებისმიერი სტრიქონისთვის, რომელიც აკმაყოფილებს სიგრძის პირობას, შესაძლებელია სტრიქონის შუა ნაწილის "დატუმბვა" რამდენჯერმე და მაინც მივიღოთ ენაში არსებული სტრიქონი. ეს ნიშნავს, რომ შუა ნაწილის გამეორებით, მიღებული სტრიქონი მაინც უნდა ეკუთვნოდეს ენას.
3. წევრობის პირობა: მესამე პირობა ამბობს, რომ ენის ნებისმიერი სტრიქონისთვის, რომელიც აკმაყოფილებს სიგრძისა და ტუმბოს პირობებს, უნდა არსებობდეს სატუმბი სიგრძე, რომელიც აღინიშნება p, ისე, რომ p-ზე გრძელი ნებისმიერი სტრიქონი შეიძლება ამოტუმბოს. ეს ნიშნავს, რომ ტუმბოს სიგრძეზე გრძელი სტრიქონებისთვის, ყოველთვის არის შესაძლებელი დაშლის პოვნა და შუა ნაწილის გამეორება, რომ მიიღოთ სტრიქონი, რომელიც ჯერ კიდევ ენაზეა.
ამ პირობების საილუსტრაციოდ, განვიხილოთ მაგალითი. დავუშვათ, გვაქვს ენა L = {0^n1^n | n ≥ 0}, რომელიც შედგება 0-იანი სტრიქონებისგან, რასაც მოჰყვება იგივე რაოდენობის 1-ები. ჩვენ შეგვიძლია გამოვიყენოთ Pumping Lemma იმის დასადგენად, არის თუ არა ეს ენა რეგულარული.
1. სიგრძის მდგომარეობა: დავუშვათ, რომ სატუმბი სიგრძე არის p. განვიხილოთ სტრიქონი s = 0^p1^p. ჩვენ შეგვიძლია დავშალოთ ეს სტრიქონი სამ ნაწილად: u = 0^k, v = 0^l და w = 1^p, სადაც k + l ≤ p და l > 0. ვინაიდან v შეიცავს მხოლოდ 0-ებს, v გადატუმბვა გამოიწვევს სტრიქონი, რომელიც შეიცავს 0-ზე მეტ 1-ს, რაც არღვევს L ენას. შესაბამისად, სიგრძის პირობა არ არის დაკმაყოფილებული.
ვინაიდან სიგრძის პირობა არ არის დაკმაყოფილებული, შეგვიძლია დავასკვნათ, რომ ენა L = {0^n1^n | n ≥ 0} არ არის რეგულარული სატუმბი ლემის მიხედვით.
სამი პირობა, რომელიც უნდა დაკმაყოფილდეს იმისათვის, რომ ენა იყოს რეგულარული, სატუმბი ლემის მიხედვით არის სიგრძის პირობა, სატუმბი მდგომარეობა და წევრობის პირობა. ეს პირობები იძლევა მძლავრ ინსტრუმენტს გამოთვლითი სირთულის თეორიის სფეროში ენების კანონზომიერების დასადგენად.
სხვა ბოლოდროინდელი კითხვები და პასუხები EITC/IS/CCTF გამოთვლითი სირთულის თეორიის საფუძვლები:
- ჩვეულებრივი ენები ექვივალენტურია სასრული მდგომარეობის მანქანებისთვის?
- PSPACE კლასი არ არის EXPSPACE კლასის ტოლი?
- არის თუ არა ალგორითმულად გამოთვლითი პრობლემა ტურინგის მანქანის მიერ გამოთვლადი პრობლემა ჩერჩ-ტურინგის თეზისის შესაბამისად?
- რა არის ჩვეულებრივი ენების დახურვის თვისება შეერთების დროს? როგორ არის გაერთიანებული სასრული მდგომარეობის მანქანები, რათა წარმოადგინონ ორი მანქანის მიერ აღიარებული ენების კავშირი?
- შეიძლება თუ არა ყველა თვითნებური პრობლემა ენაზე გამოხატული იყოს?
- არის P სირთულის კლასი PSPACE კლასის ქვესიმრავლე?
- აქვს თუ არა ყველა მრავალფირიანი ტურინგის მანქანას ექვივალენტური ერთფირიანი ტურინგის მანქანა?
- რა არის პრედიკატების გამოსავალი?
- არის თუ არა ლამბდა გამოთვლები და ტურინგ მანქანები გამოთვლითი მოდელები, რომლებიც პასუხობენ კითხვაზე რას ნიშნავს გამოთვლა?
- შეგვიძლია დავამტკიცოთ, რომ Np და P კლასი ერთნაირია, თუ ვიპოვით ეფექტური პოლინომიური ამოხსნის ნებისმიერი NP სრული ამოცანის დეტერმინისტულ TM-ზე?
იხილეთ მეტი კითხვა და პასუხი EITC/IS/CCTF გამოთვლითი სირთულის თეორიის საფუძვლებში