Pumping Lemma är ett grundläggande verktyg inom området för beräkningskomplexitetsteori som låter oss avgöra om ett språk är regelbundet eller inte. Enligt Pumpinglemma måste tre villkor vara uppfyllda för att ett språk ska vara regelbundet. Dessa villkor är följande:
1. Längdvillkor: Det första villkoret anger att för varje sträng i språket som är tillräckligt lång, finns det en nedbrytning av strängen i tre delar, u, v och w, så att längden på v är större än noll och mindre än eller lika med ett konstant värde, och sammanlänkningen av u, v och w finns fortfarande i språket. Språket måste med andra ord innehålla strängar som kan delas upp i tre delar, där mittdelen kan upprepas hur många gånger som helst och den resulterande strängen finns kvar i språket.
2. Pumpingvillkor: Det andra villkoret säger att för vilken sträng som helst i språket som uppfyller längdvillkoret är det möjligt att "pumpa" mittdelen av strängen hur många gånger som helst och ändå få en sträng som finns på språket. Detta innebär att genom att upprepa mittdelen måste den resulterande strängen fortfarande tillhöra språket.
3. Medlemskapsvillkor: Det tredje villkoret anger att för varje sträng på språket som uppfyller längd- och pumpvillkoren måste det finnas en pumplängd, betecknad som p, så att varje sträng längre än p kan pumpas. Det betyder att för strängar längre än pumplängden är det alltid möjligt att hitta en sönderdelning och upprepa mittdelen för att få en sträng som fortfarande finns i språket.
För att illustrera dessa förhållanden, låt oss överväga ett exempel. Anta att vi har ett språk L = {0^n1^n | n ≥ 0}, som består av strängar med 0:or följt av samma antal 1:or. Vi kan använda pumplemma för att avgöra om detta språk är vanligt.
1. Längdvillkor: Låt oss anta att pumplängden är p. Betrakta strängen s = 0^p1^p. Vi kan sönderdela denna sträng i tre delar: u = 0^k, v = 0^l och w = 1^p, där k + l ≤ p och l > 0. Eftersom v endast innehåller nollor, kommer pumpning av v att resultera i en sträng som innehåller fler nollor än 0:or, vilket bryter mot språket L. Därför är längdvillkoret inte uppfyllt.
Eftersom längdvillkoret inte är uppfyllt kan vi dra slutsatsen att språket L = {0^n1^n | n ≥ 0} är inte regelbundet enligt pumplemma.
De tre villkoren som måste vara uppfyllda för att ett språk ska vara regelbundet enligt Pumpinglemma är längdvillkoret, pumpvillkoret och medlemsvillkoret. Dessa villkor ger ett kraftfullt verktyg för att bestämma regelbundenhet hos språk inom området för beräkningskomplexitetsteori.
Andra senaste frågor och svar ang EITC/IS/CCTF Computational Complexity Theory Fundamentals:
- Är vanliga språk likvärdiga med Finite State Machines?
- Är PSPACE-klassen inte lika med EXPSPACE-klassen?
- Är ett algoritmiskt beräkningsbart problem ett problem som kan beräknas av en Turing-maskin i enlighet med Church-Turing-avhandlingen?
- Vad är stängningsegenskapen för vanliga språk under sammanlänkning? Hur kombineras ändliga tillståndsmaskiner för att representera föreningen av språk som känns igen av två maskiner?
- Kan varje godtyckligt problem uttryckas som ett språk?
- Är P-komplexitetsklassen en delmängd av PSPACE-klassen?
- Har varje multi-tape Turing-maskin en likvärdig single-tape Turing-maskin?
- Vad är resultatet av predikat?
- Är lambdakalkyl och turingmaskiner beräkningsbara modeller som svarar på frågan om vad betyder beräkningsbar?
- Kan vi bevisa att Np och P klass är samma genom att hitta en effektiv polynomlösning för alla NP kompletta problem på en deterministisk TM?
Se fler frågor och svar i EITC/IS/CCTF Computational Complexity Theory Fundamentals