จะพิสูจน์ได้อย่างไรว่าภาษาไม่ปกติ


75

เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาปกติ{} มันโดดเด่นด้วยแนวคิดใดแนวคิดหนึ่งในการแสดงออกปกติออโต้ จำกัด และไวยากรณ์ด้านซ้ายดังนั้นจึงเป็นเรื่องง่ายที่จะแสดงว่าภาษาที่กำหนดเป็นปกติREG

ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้รับการยืนยันว่าในการทำเช่นนั้นเราจะต้องแสดงให้เห็นสำหรับการแสดงออกปกติทั้งหมด (หรือสำหรับออโต้ จำกัด ทั้งหมดหรือสำหรับไวยากรณ์ซ้าย - เชิงเส้นทั้งหมด) ที่พวกเขาไม่สามารถอธิบายภาษาที่อยู่ในมือ ดูเหมือนว่าจะเป็นงานใหญ่!

ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ

นี่เป็นคำถามอ้างอิงที่รวบรวมวิธีการพิสูจน์ตามปกติและตัวอย่างการใช้ ดูที่นี่สำหรับคำถามเดียวกันเกี่ยวกับภาษาที่ไม่มีบริบท

คำตอบ:


60

การพิสูจน์โดยความขัดแย้งมักใช้เพื่อแสดงว่าภาษาไม่ปกติ: ให้เป็นคุณสมบัติจริงสำหรับทุกภาษาปกติหากภาษาเฉพาะของคุณไม่ได้ตรวจสอบว่าไม่ใช่ภาษาปกติ คุณสมบัติต่อไปนี้สามารถใช้ได้:PPP

  1. บทแทรกการสูบน้ำอย่างสุดขั้วในคำตอบของเดฟ ;
  2. คุณสมบัติการปิดของภาษาปกติ (ชุดปฏิบัติการ, การต่อ, ดาวคลีน, กระจก, โฮโมมอร์ฟิซึม);
  3. ภาษาปกติมีจำนวน จำกัด ของคำนำหน้าชั้นสมมูล, Myhill-Nerode ทฤษฎีบท

เพื่อพิสูจน์ว่าภาษาไม่ปกติโดยใช้คุณสมบัติการปิดเทคนิคคือการรวมกับภาษาปกติโดยการดำเนินการที่รักษาความสม่ำเสมอเพื่อให้ได้ภาษาที่ทราบว่าไม่ปกติเช่นภาษา archetypical\} ตัวอย่างเช่นให้\} สมมติเป็นปกติเป็นภาษาปกติจะปิดภายใต้ complementation เพื่อให้เป็น 's ส่วนประกอบค ทีนี้หาจุดตัดของและซึ่งเป็นค่าปกติเราได้ค่าซึ่งไม่เป็นปกติL I = { a n b n | n N } L = { a p b q | p q } L L L c L c a b ILLI={anbn|nN}L={apbq|pq}LLLcLcabI

ทฤษฎีบท Myhill – Nerode สามารถนำมาใช้เพื่อพิสูจน์ว่าไม่ปกติ สำหรับ ,\} คลาสทั้งหมดนั้นแตกต่างกันและมีจำนวนอนันต์ที่นับได้ของคลาสดังกล่าว ในฐานะที่เป็นภาษาปกติจะต้องมีจำนวน จำกัด ของชั้นเรียนไม่ปกติp 0 I / a p = { a r b r b p | R N } = ฉัน { b p } ฉันIp0I/ap={arbrbp|rN}=I.{bp}I


3
ไม่ทราบเกี่ยวกับทฤษฎีบท Myhill-Nerode เลย!
Daniil

Wikipedia ยังมีส่วนที่เกี่ยวกับจำนวนคำในภาษาปกติ: หากคุณสามารถพิสูจน์ได้ว่าภาษาของคุณไม่ตรงกับตัวละครแล้วภาษาของคุณไม่ปกติ: en.wikipedia.org/wiki/ …
Alex ten Brink

@Daniil การแสดงออกปกติไม่สามารถนับได้ดูเหมือนว่าฉันจะได้รับความนิยมอย่างไม่เป็นทางการของทฤษฎีบท Myhill-Nerode
AProgrammer

@AlextenBrink: นั่นเป็นระเบียบ ฉันเดาว่าค่าคงที่ในคำแถลงนั้นมีค่าลักษณะเฉพาะของ Laplacian ของหุ่นยนต์หรือไม่? นี่จะเป็นการเพิ่มเติมที่ดีให้กับคำตอบที่นี่
หลุยส์

@Louis: ที่จริงแล้วเราไม่พบการอ้างอิงสำหรับทฤษฎีบทนั้นเลยดังนั้นหากคุณรู้เพิ่มเติมเกี่ยวกับมัน ... โปรดดู: cs.stackexchange.com/questions/1045/…
Alex ten Brink

37

ตามคำตอบของ Dave นี่คือ "คู่มือ" ทีละขั้นตอนสำหรับการใช้บทแทรก

จำบทแทรกการปั๊ม (นำมาจากคำตอบของเดฟที่ถ่ายจาก Wikipedia):

ให้เป็นภาษาปกติ จากนั้นจะมีจำนวนเต็ม (ขึ้นอยู่กับ ) เช่นเดียวกับที่ทุก ๆ สตริงในของความยาวอย่างน้อย (เรียกว่า "pumping length") สามารถเขียนเป็น (เช่นสามารถ แบ่งออกเป็นสามสตริงย่อย) ซึ่งเป็นไปตามเงื่อนไขต่อไปนี้:Ln1LwLnnw=xyzw

  1. |y|1
  2. |xy|n and
  3. เป็น "สูบ"ยังคงอยู่ใน : สำหรับทุก ,L wLi0xyizL

สมมติว่าคุณได้รับภาษาและคุณต้องการแสดงให้เห็นว่ามันไม่ปกติผ่านบทแทรก หลักฐานมีลักษณะเช่นนี้:L

  1. สมมติว่าเป็นปกติL
  2. ถ้าเป็นปกติแล้ว lemma ของการสูบน้ำบอกว่ามีจำนวนอยู่ซึ่งก็คือความยาวของการสูบน้ำn
  3. เลือกเฉพาะคำความยาวขนาดใหญ่กว่าnส่วนที่ยากคือการรู้ว่าต้องใช้คำไหนwLn
  4. พิจารณาทุกวิธีในการแบ่งพาร์ติชันออกเป็น 3 ส่วนคือด้วยและไม่ว่างเปล่า สำหรับแต่ละวิธีการเหล่านี้แสดงให้เห็นว่ามันไม่สามารถสูบ: มีอยู่เสมอบางเช่นที่Lww=xyz|xy|nyฉัน0 x y ฉัน z Li0xyizL
  5. สรุป: คำว่าไม่สามารถ "อัด" (ไม่ว่าเราจะแยกมันเป็น ) อย่างไรในการขัดแย้งกับบทแทรกของการสูบน้ำเช่นว่าสมมติฐานของเรา (ขั้นตอนที่ 1) นั้นผิด:ไม่ปกติwxyzL

ก่อนที่เราจะไปเป็นตัวอย่างให้ฉันย้ำขั้นตอนที่ 3 และขั้นตอนที่ 4 (นี่คือที่ที่คนส่วนใหญ่ผิดพลาด) ในขั้นตอนที่ 3 คุณจะต้องเลือกคำหนึ่งที่เฉพาะเจาะจงในLเขียนอย่างชัดเจนเช่น "00001111" หรือ " " ตัวอย่างสำหรับสิ่งที่ไม่ใช่คำเฉพาะ: " " หรือ "คำที่มี 000 เป็นคำนำหน้า"Lanbn Ww

ในอีกทางหนึ่งในขั้นตอนที่ 4 คุณต้องพิจารณามากกว่าหนึ่งกรณี ตัวอย่างเช่นถ้าไม่เพียงพอที่จะบอกว่าแล้วจึงขัดแย้งกัน คุณต้องตรวจสอบและและตัวเลือกอื่น ๆ ที่เป็นไปได้ทั้งหมดw=000111x=00,y=01,z=00x=0,y=0,z=0111x=ϵ,y=000,z=111


ทีนี้ลองทำตามขั้นตอนและพิสูจน์ว่าไม่ปกติL={0k12kk>0}

  1. สมมติว่าปกติL
  2. ให้คือความยาวของการสูบที่กำหนดโดย lemma ของการสูบน้ำn
  3. Let{2n} (ตรวจสอบสติ:ตามต้องการทำไมคำนี้คำอื่น ๆ สามารถทำงานได้เช่นกัน .. มันต้องใช้ประสบการณ์บางอย่างที่จะเกิดขึ้นกับเหมาะสม) อีกครั้งทราบว่าเป็นคำที่เฉพาะเจาะจง:{}}w=0n12n | w | > n W W 000 ... 0 n  ครั้ง111 ... 1 2 n  ครั้ง
    |w|>nww0000n times11112n times
  4. ตอนนี้ให้เริ่มพิจารณากรณีต่างๆที่จะแยกเข้ากับและ 0 ตั้งแต่ไม่ว่าวิธีการที่เราแยก ,จะประกอบด้วยเพียง 0 และเพื่อจะYให้ถือว่าและ k เราจำเป็นที่จะต้องพิจารณาตัวเลือกทั้งหมดที่เป็นไปได้ทั้งหมดดังกล่าวว่าและn สำหรับนี้หลักฐานสำหรับกรณีเหล่านี้เหมือนกัน แต่โดยทั่วไปอาจแตกต่างกัน ใช้และพิจารณาwxyz|xy|n|y|>0|xy|<nwxy|x|=s|y|=ks,ks0,k1s+knL i = 0 x y i z = x z L 0 n - k 1 2 n s k k 1 L
    i=0xyiz=xzXZ คำนี้ไม่ได้อยู่ในเนื่องจากเป็นรูปแบบ (ไม่ว่าจะและใด) และตั้งแต่คำนี้ไม่ได้อยู่ในและเรามีความขัดแย้ง .L0nk12nskk1L
  5. ดังนั้นสมมติฐานของเราไม่ถูกต้องและไม่ปกติL

คลิป youtube ที่อธิบายวิธีการใช้บทแทรกตามบรรทัดเดียวกันสามารถดูได้ที่นี่


1
มันคือความยาวของปั๊มในคำจำกัดความนี้!
saadtaame

28

จาก Wikipedia ภาษาที่ใช้ในการปั๊มสำหรับภาษาปกติมีดังต่อไปนี้:

ให้เป็นภาษาปกติ จากนั้นจะมีจำนวนเต็ม (ขึ้นอยู่กับ ) เช่นเดียวกับที่ทุกสายในของความยาวอย่างน้อย (เรียกว่า "pumping length") สามารถเขียนเป็น (เช่นสามารถ แบ่งออกเป็นสามสตริงย่อย) ซึ่งเป็นไปตามเงื่อนไขต่อไปนี้:p 1 L w L p p w = x y z wLp1LwLppw=xyzw

  1. |y|1
  2. |xy|p and
  3. สำหรับทุก ,L คือสตริงย่อยที่สามารถสูบ (ลบหรือทำซ้ำจำนวนครั้งใด ๆ และสตริงที่เกิดขึ้นอยู่เสมอใน ) x y ฉัน z L y Li0xyizL
    yL

(1) หมายถึงลูป y ที่จะสูบต้องมีความยาวอย่างน้อยหนึ่ง (2) หมายถึงการวนซ้ำจะต้องเกิดขึ้นภายในตัวอักษร p ตัวแรก ไม่มีข้อ จำกัด ใน x และ z

คำง่ายๆสำหรับภาษาปกติ L คำใด ๆ ที่ยาวพอสามารถแบ่งออกเป็น 3 ส่วน คือเช่นว่าสตริงทั้งหมดสำหรับ ยังอยู่ในLw = x y z x y k z k 0 LwLw=xyzxykzk0L

ตอนนี้ขอพิจารณาตัวอย่าง Let\}L={(01)n2nn0}

เพื่อแสดงให้เห็นว่านี่ไม่ใช่เรื่องปกติคุณต้องพิจารณาว่าการย่อยสลายทั้งหมดมีลักษณะอย่างไรดังนั้นสิ่งที่เป็นไปได้ทั้งหมดคือ x, y และ z ที่ (เราเลือก เพื่อดูคำนี้ความยาวโดยที่คือความยาวของการสูบน้ำ) เราจำเป็นที่จะต้องพิจารณาที่ส่วนหนึ่งของสตริงเกิดขึ้น มันอาจทับซ้อนกับส่วนแรกและจะเท่ากับ , ,หรือสำหรับบาง (อย่าลืม ) มันอาจทับซ้อนกับส่วนที่สองซึ่งหมายความว่าx y z = ( 01 ) p 2 p 3 p p y ( 01 ) k + 1 ( 10 ) k + 1 1 ( 01 ) k 0 ( 10 ) k k 0 | y | 1 y = 2 k k > 0 ( 01 ) k +w=xyzxyz=(01)p2p3ppy(01)k+1(10)k+11(01)k0(10)kk0|y|1y=2kสำหรับบาง 0 หรืออาจซ้อนทับทั้งสองส่วนของคำและจะมีรูปแบบ , ,หรือสำหรับและLk>0 (10 ) k + 1 2 l 1(01 ) k 2 l 0(10 ) k 2 l k0l1(01)k+12l(10)k+12l1(01)k2l0(10)k2lk0l1

ตอนนี้ให้ปั๊มแต่ละคนเพื่อให้ได้ความขัดแย้งซึ่งจะเป็นคำที่ไม่ได้อยู่ในภาษาของคุณ ตัวอย่างเช่นถ้าเราใช้การสูบ lemma พูดเช่นต้องเป็นภาษา สำหรับการเลือกที่เหมาะสมของและZแต่คำนี้ไม่สามารถอยู่ในภาษาที่เป็นปรากฏขึ้นก่อนที่1 x y 2 z = x 0 ( 10 ) k 2 l 0 ( 10 ) k 2 l z x z 2 1y=0(10)k2lxy2z=x0(10)k2l0(10)k2lzxz21

กรณีอื่น ๆ จะส่งผลให้จำนวนมากกว่าจำนวนหรือในทางกลับกันหรือจะส่งผลให้คำที่ไม่มีโครงสร้างโดยตัวอย่างเช่น มีสองในแถว2 ( 01 ) n 2 n 0(01)2(01)n2n0

อย่าลืม . ที่นี่มีประโยชน์ที่จะพิสูจน์ให้สั้นลง: การสลายตัวข้างต้นจำนวนมากเป็นไปไม่ได้เพราะพวกมันจะทำให้ส่วนยาวเกินไปz|xy|pz

แต่ละกรณีข้างต้นจำเป็นต้องนำไปสู่ความขัดแย้งดังกล่าวซึ่งจะเป็นความขัดแย้งของบทแทรก Voila! ภาษาจะไม่ปกติ


ตัวอย่างที่จำเป็นต้องใช้สมมติฐานจะดี |xy|p
Gilles

@Gilles: ฉันไม่แน่ใจด้วยซ้ำว่าประโยคที่คุณเพิ่มหมายถึงอะไร
Dave Clarke

@Gilles: ฉันคิดว่าการย่อยสลายทั้งหมดเป็นไปได้เพียงแค่ว่าจะถูก จำกัด ผมไม่แน่ใจว่าสิ่งที่มันจะทำอย่างไรกับความยาวของZzkz
Dave Clarke

ดุจ! ฉันเห็นมันตอนนี้ ขอบคุณ อย่างไรก็ตามมันไม่สามารถแยกแยะรูปแบบการย่อยสลายใด ๆ ที่ระบุไว้ในคำตอบได้ มัน จำกัด เฉพาะค่าของและฉันสามารถทำได้ ลิตรkl
Dave Clarke

1
จำนวนการแก้ไขที่ทำเพื่อตอบคำถามง่าย ๆ นี้ทำให้ฉันสงสัยว่าทำไมทุกคนสอนบทแทรกคำว่า "วิธี" ในการพิสูจน์ว่าไม่สม่ำเสมอ จากความอยากรู้ทำไมไม่เพียงแค่ใช้สายของคุณจะเป็นสิ่งที่ชอบ ? บทแทรกการปั๊มจะบอกคุณว่าไม่มีวินาทีในนั้นซึ่งขัดแย้งกันตรงไปตรงมามากขึ้น y 2(01)2p22py2
หลุยส์

14

สำหรับภาษาที่กำหนด , อนุญาตLΣ

SL(z)=n0|LΣn|zn

ฟังก์ชั่นสร้าง (สามัญ) ของคือลำดับของคำนับต่อความยาวL

คำสั่งต่อไปนี้ถือ [ FlSe09 , p52]:

LREGSL rational

นั่นคือด้วยชื่อพหุนาม P,QSL(z)=P(z)Q(z)P,Q

ดังนั้นภาษาใด ๆ ที่ฟังก์ชั่นการสร้างไม่ได้มีเหตุผลไม่ได้เป็นปกติ น่าเสียดายที่ภาษาเชิงเส้นทั้งหมดมีฟังก์ชั่นการสร้างแบบมีเหตุผลดังนั้นวิธีนี้จึงใช้ไม่ได้กับภาษาที่ไม่ใช่ภาษาธรรมดาที่ง่ายกว่า ข้อเสียเปรียบอีกประการหนึ่งคือการได้รับ (และแสดงว่าไม่สมเหตุสมผล) อาจเป็นเรื่องยากSL

ตัวอย่าง:พิจารณาภาษาของซ้อนกันอย่างถูกต้องคำวงเล็บคือภาษา Dyck มันถูกสร้างขึ้นโดยไวยากรณ์ที่ชัดเจน

S[S]Sε

ซึ่งสามารถแปลเป็นสมการได้

S(z)=z2S2(z)+1

วิธีแก้ปัญหาหนึ่ง (หนึ่งที่มีสัมประสิทธิ์เป็นบวกทั้งหมด) ซึ่งเป็น

S(z)=114z22z22}

เนื่องจาก [ Kuic70 ] และไม่สมเหตุสมผลภาษา Dyck จึงไม่ปกติSSL=SS


  1. หลักฐานสำหรับคำสั่งสำหรับภาษาปกติทำงานผ่านทางไวยากรณ์และโอนไปยังไวยากรณ์เชิงเส้นทันที (การสับเปลี่ยนของการคูณ)

   [FlSe09] Combinatorics เชิงวิเคราะห์โดย P. Flajolet และ R. Sedgewick (2009) [Kuic70] เกี่ยวกับเอนโทรปีของภาษาที่ไม่มีบริบทโดย W. Kuich (1970)
  


13

นี่เป็นคำตอบที่ฉันเพิ่มเติมจากที่นี่การใช้ Pumping Lemma เพื่อพิสูจน์ภาษาไม่ได้เป็นแบบปกติL={(01)m2mm0}เนื่องจากเป็นคำถามอ้างอิง

ดังนั้นคุณคิดว่าบทแทรกของการปั๊มดูซับซ้อนไหม? ไม่ต้องกังวล นี่คือวิธีการที่แตกต่างกันเล็กน้อยซึ่งซ่อนอยู่ในคำตอบของ @ Romuald เช่นกัน (คำถาม: อยู่ที่ไหน)

มาเริ่มกันด้วยการจดจำว่าทุกภาษาปกติได้รับการยอมรับจาก automite finite state (DFA) DFA เป็นกราฟที่มีขอบเขต จำกัด ซึ่งทุกจุดยอดจะมีหนึ่งขอบเขตสำหรับตัวอักษรแต่ละตัว เงื่อนไขให้การเดินในกราฟตามจุดยอดที่ระบุว่า "เริ่มต้น" และ DFA ยอมรับว่าการเดินนี้สิ้นสุดที่จุดยอดที่ระบุว่า "ยอมรับ" (จุดยอดเรียกว่า "สถานะ" เพราะพื้นที่ต่าง ๆ ของคณิตศาสตร์ต้องการสร้างคำศัพท์ของตนเองสำหรับสิ่งเดียวกัน)

ด้วยวิธีคิดนี้มันง่ายที่จะเห็นว่า: ถ้าสตริงและขับ DFA ให้อยู่ในสถานะเดียวกันดังนั้นสำหรับสตริงอื่น ,และขับ DFA ให้อยู่ในสถานะเดียวกัน b c a c b cabcacbcทำไม? เนื่องจากจุดที่ระบุของการเดินและสายอักขระที่กำหนดนั้นกำหนดจุดสิ้นสุดอย่างสมบูรณ์

ใส่ความแตกต่างเล็กน้อย: ถ้าเป็นปกติและสตริงและทำให้ออโตเมติกที่รับรู้อยู่ในสถานะเดียวกันดังนั้นสำหรับสตริงทั้งหมดทั้งและจะมีทั้งหรือไม่ใช่a b c a c b c LLabcacbcL

เราสามารถใช้สิ่งนี้เพื่อแสดงภาษาที่ไม่ปกติด้วยการจินตนาการว่ามันเกิดขึ้นแล้วและมาพร้อมกับและผลักดัน DFA ไปสู่สถานะเดียวกันและเพื่อให้อยู่ในภาษาและไม่ได้ ใช้ภาษาตัวอย่างจากคำตอบของ @ Dave ลองนึกภาพว่ามันเป็นเรื่องปกติดังนั้นจึงมีบางคนที่รู้จัก DFA กับสถานะหลักการของ Pigeon Hole บอกว่าอย่างน้อยสองของส่ง DFA ไปยังสถานะเดียวกันพูดและ Q ตั้งแต่เราเห็นว่าเป็นภาษาและb c a c b c m { ( 01 ) i : 0 i m + 1 } a = ( 01 ) p b = ( 01 ) q p q a 2 p b 2 pabcacbcm{(01)i:0im+1}a=(01)pb=(01)qpqa2pb2p ไม่ใช่ดังนั้นภาษานี้จึงไม่ปกติ

สิ่งที่ดีคือตัวอย่างเป็นเทมเพลตสำหรับการพิสูจน์ว่าภาษาไม่ปกติ:

  • ค้นหาตระกูลของสตริงพร้อมด้วยคุณสมบัติที่แต่ละอันมี "หาง"ดังนั้นอยู่ในภาษาและสำหรับไม่ใช่เสื้อฉันฉันทีฉันฉันทีเจฉันเจ{ai:iN}tiaitiaitjij
  • ใช้อาร์กิวเมนต์ด้านบนคำต่อคำ (สิ่งนี้ได้รับอนุญาตเนื่องจากมีเพียงพอที่จะอนุญาตให้คุณเรียกใช้หลักการของ Pigeon Hole)ai

มีเทคนิคอื่น ๆ แต่วิธีนี้จะทำงานได้อย่างง่ายดายในปัญหาการบ้านส่วนใหญ่ของคุณ

แก้ไข:เวอร์ชันก่อนหน้านี้มีการอภิปรายว่าแนวคิดนี้เกี่ยวข้องกับ Pumping Lemma อย่างไร


ฉันไม่คิดว่าการทำซ้ำหลักฐานการปั๊มเลมม่ามีประโยชน์โดยทั่วไป แต่เป็น YMMV การทำความเข้าใจหลักฐานนั้นดีในทุกกรณี มันเชื่อมต่อทันทีพร้อมกับจำนวนการปิดและคุณสมบัติที่น่าสนใจอื่น ๆ ของออโต จำกัด และภาษาปกติ ฉันไม่เห็นด้วยอย่างยิ่งกับประโยคสุดท้ายแม้ว่า: ทฤษฎีออโตมาตะไม่น่าเบื่อเลยและแน่นอนว่าไม่ใช่ส่วนที่น่าเบื่อที่สุดของชั้นเรียนทฤษฎี
ราฟาเอล

@Louis ในคำตอบของคุณวิธีที่คุณจะมาพร้อมกับคำสั่งนี้we see that a2p is in the language and b2p is not, so this language can't be regular.ในที่สุด กรุณาคุณสามารถให้ตัวอย่าง
Himanshu

@Himanshu และทั้งนำคุณไปยังรัฐเดียวกันq_1ดังนั้นสิ่งที่คุณอ่านหลังจากนั้น (ที่นี่) คุณจะได้รับสถานะเดียวกันไม่ว่าสิ่งที่คุณเริ่มต้นด้วย - หรือขb q 1 2 p q 2 a babq12pq2ab
อัลจี

7

ทำตามคำตอบที่นี่ฉันจะอธิบายวิธีการพิสูจน์ความไม่สม่ำเสมอตามความซับซ้อนของ Kolmogorv

วิธีการนี้จะกล่าวถึงใน"วิธีการใหม่ในทฤษฎีภาษาทางการโดย Kolmogorov Complexity"โดย Ming Li และ Paul MB Vitanyi (ดูหัวข้อ 3.1)

อนุญาตให้แสดงความซับซ้อนของ Kolmogorov ของสตริงคือความยาวของการเข้ารหัสที่สั้นที่สุดของ Turing machineเช่น (คำจำกัดความปกติใด ๆ จะทำ) จากนั้นหนึ่งสามารถใช้บทแทรกต่อไปนี้เพื่อพิสูจน์ว่าไม่สม่ำเสมอ:x M M ( ϵ ) = xK(x)xMM(ϵ)=x

KC-Regularity : ให้เป็นภาษาปกติแล้วมีค่าคงที่ซึ่งขึ้นอยู่กับเท่านั้นเช่นสำหรับทั้งหมดหากคือสตริง ( เมื่อเทียบกับการสั่งซื้อพจนานุกรม) ในแล้ว CL x Σ * Y n 'ทีเอชL x = { Y Σ * | x y L } K ( y ) O ( บันทึกn ) + cLΣcLxΣynthLx={yΣ|xyL}K(y)O(logn)+c

หนึ่งสามารถเข้าใจ (และพิสูจน์) บทแทรกด้านบนดังต่อไปนี้สำหรับใด ๆเพื่ออธิบายสตริงในหนึ่งต้องระบุ:n 'ทีเอชL xxΣnthLx

  • หุ่นยนต์ที่รับL
  • สถานะในหุ่นยนต์หลังจากประมวลผลคำนำหน้าx
  • ดัชนีn

เนื่องจากเราจะต้องจำรัฐหลังจากการประมวลผลและไม่ตัวเองเราสามารถซ่อนปัจจัยนี้คงขึ้นอยู่กับLดัชนีต้องการบิตเพื่ออธิบายและเราได้ผลลัพธ์ดังกล่าวข้างต้น (เพื่อความสมบูรณ์เราต้องเพิ่มคำแนะนำเฉพาะที่จำเป็นในการสร้างแต่สิ่งนี้จะเพิ่มปัจจัยคงที่ให้กับคำอธิบายสุดท้ายเท่านั้น)x L n บันทึกn YxxLnlogny

แทรกนี้แสดงให้เห็นถึงวิธีการที่ถูกผูกไว้กับความซับซ้อนของ Kolmogorov สตริงทั้งหมดซึ่งเป็นสมาชิกของสำหรับบางภาษาปกติและ * เพื่อแสดงความไม่สม่ำเสมอเราสามารถสันนิษฐานได้ว่าเป็นปกติและพิสูจน์ว่าขอบเขตนั้นเข้มงวดเกินไป (เช่นความซับซ้อนของ Kolmogrov ที่ จำกัด ขอบเขตสำหรับชุดสตริงที่ไม่มีขอบเขต) L x Σ * LLxLxΣL

คำตอบที่ลิงก์ด้านบนมีตัวอย่างของวิธีใช้บทแทรกนี้เพื่อแสดงไม่ปกติมีตัวอย่างอีกมากมายให้ไว้ในกระดาษ เพื่อความสมบูรณ์เราจะแสดงวิธีพิสูจน์ไม่ปกติ L = { 0 n 1 n | n 0 }L={1p|p is prime}L={0n1n|n0}

ได้รับบางเราใช้แสดงโดยคำในL_xโปรดทราบว่าฉัน ใช้แทรกข้างต้นโดยมุ่งเน้นที่คำนำหน้าของแบบฟอร์มและแก้ไขเราได้รับค ตั้งแต่นี่หมายความว่าเราสามารถผูกความซับซ้อนของ Kolmogorov ของสตริงทั้งหมดของรูปแบบด้วยค่าคงที่ซึ่งเห็นได้ชัดว่าเป็นเท็จ เป็นมูลค่าการกล่าวขวัญว่าเราสามารถตรวจสอบเดียวเช่นสำหรับขนาดใหญ่พอx{0,1}yixithLxy10i=1ixx=0in=1i0:K(y10i)cy10i=1i1ixx=0nnซึ่งเป็นไปตาม (เราเริ่มต้นด้วยคำนำหน้าความซับซ้อนสูง) ตั้งแต่เราจะได้ , ขัดแย้ง (สมมติ )K(0n)logny1x=1nK(1n)<cn>2c


7

ในกรณีของภาษาที่แตกต่างกัน (ภาษาที่มีขนาดมากกว่าตัวอักษร 1) จะมีเกณฑ์ง่าย ๆ ขอให้เราแก้ไขตัวอักษรและสำหรับให้นิยาม {σ}AN

L(A)={σn:nA}.

ทฤษฎีบท. ให้{N} สิ่งต่อไปนี้เทียบเท่า:AN

  1. L(A)ปกติ

  2. L(A)บริบท

  3. มีอยู่เช่นว่าทุกก็ถือได้ว่า IFFA (เราบอกว่าในที่สุดเป็นระยะ )n0,m1nn0nAn+mAA

  4. ให้A} จากนั้นมีเหตุผลai=1iA0.a0a1a2

  5. ฟังก์ชั่นการสร้างเป็นฟังก์ชั่นที่มีเหตุผลiAxi

ทฤษฎีบทสามารถพิสูจน์ได้ในหลาย ๆ ด้านเช่นการใช้แทรกสูบน้ำทฤษฎี Myhill-Nerode ทฤษฎีบท Parikh ของโครงสร้างของ DFAs ในภาษาเอก (พวกเขามีลักษณะเหมือน " " ในขณะที่พอลลาร์ของอัลกอริทึม) และ เป็นต้น นี่คือข้อพิสูจน์ที่มีประโยชน์ρρ

ควันหลง ปล่อยให้และสมมติว่าเป็นปกติANL(A)

  1. ขีด จำกัดอยู่ (นี่คือความหนาแน่นของซีมโทติค )ρ=limn|A{1,,n}|nA

  2. ถ้าดังนั้นจะมีค่า จำกัดρ=0A

  3. ถ้าดังนั้นคือ cofinite (นั่นคือมี จำกัด )ρ=1AA¯

ยกตัวอย่างเช่นภาษาไม่ใช่เรื่องปกติเนื่องจากเซตนี้มีความหนาแน่นแบบ asymptotic แต่ไม่มีที่สิ้นสุดL({2n:n0})


4

ชั้นเรียนภาษาปกติจะปิดภายใต้การดำเนินการปิดต่างๆเช่นสหภาพแยกแยกส่วน homomorphism ทดแทนปกติผกผัน homomorphism และอื่น ๆ สิ่งนี้สามารถนำมาใช้เพื่อพิสูจน์ว่าภาษาที่กำหนดไม่ได้เป็นปกติโดยการลดลงของภาษาซึ่งเป็นที่รู้จักกันแล้วว่าจะไม่ปกติ

เป็นตัวอย่างที่ง่ายมากสมมติว่าเรารู้ว่าภาษาไม่ใช่เรื่องปกติ แล้วเราสามารถพิสูจน์ได้ว่าภาษา (ภาษาของทุกคำที่มีหลายอย่างเท่าเทียมกันและ s) ไม่ปกติดังนี้:{anbn:n0}{w{a,b}:#a(w)=#b(w)}ab

สมมติว่าเป็นปกติ จากนั้นก็จะเป็นปกติเช่นกัน แต่ซึ่งเป็นที่ทราบกันว่าไม่ปกติL={w{a,b}:#a(w)=#b(w)}LabLab={anbn:n0}

นี่คือตัวอย่างที่ซับซ้อนมากขึ้น ให้เราแสดงว่าภาษาไม่ปกติL={(0+1)n2(0+1)n:n0}

ให้จะทำแผนที่ homomorphism ที่กำหนดโดย , ,\ ถ้าเป็นปกติแล้วดังนั้นไม่ว่าจะเป็นภาษาต่อไปนี้จะเป็น:\} อย่างไรก็ตามเรารู้ว่าหลังไม่ปกติhh(0)=0h(1)=1h(2)=ϵLh(L021)={0n1n:n0}

ในที่สุดนี่คือตัวอย่างการใช้งาน homomorphism ให้เราแสดงว่าภาษาไม่ได้เป็นปกติL={0n10n:n0}

ให้เป็น homomorphism ที่กำหนดโดย , ,1 หากเป็นปกติดังนั้นจะเป็นเช่นนั้น แต่นั่นเป็นเพียงภาษาจากตัวอย่างก่อนหน้านี้kk(0)=0k(1)=0k(2)=1Lk1(L)L


3

ใช้ทฤษฎี Myhill – Nerode

ให้เป็นภาษา เราบอกว่าสองคำเป็นinequivalentโมดูโล (หรือ: ด้วยความเคารพ ) ถ้ามีคำดังกล่าวที่ว่าหนึ่งในอยู่ในLใน DFA ใด ๆ สำหรับ , (แบบฝึกหัด) สิ่งนี้แสดงถึงเกณฑ์ดังต่อไปนี้:Lx,yLLzxz,yzLLδ(q0,x)δ(q0,y)

ให้เป็นภาษา สมมติว่ามีเซตอนันต์ของคำที่ไม่เท่ากันของจำนวนคู่ (นั่นคือเซตอนันต์ที่สองไม่เท่ากันเท่ากับเป็นโมดูโลแบบอสมการ ) จากนั้นไม่ปกติLSx,ySLL

นี่เป็นตัวอย่างง่ายๆของการใช้เกณฑ์นี้:

ภาษาไม่ใช่ภาษาปกติL={anbn:n0}

พิสูจน์ ให้\} เราอ้างว่าสองคำที่แตกต่างกันในมี inequivalent โมดูโลLแน่นอนให้ , ที่ . จากนั้นแต่LS={an:n0}SLai,ajSijaibiLaibjL

คุณลักษณะที่สำคัญของวิธีนี้คือการรับประกันว่าจะประสบความสำเร็จ: ถ้าไม่ปกติก็จะมีชุดคำไม่เท่ากันแบบคู่ที่ไม่สิ้นสุด นี่คือผลของทฤษฎีบท Myhill-Nerode ชั่วครู่โมดูโล (การปฏิเสธของความไม่สมดุลแบบโมดูโลกำหนดไว้ข้างต้น) เป็นความสัมพันธ์ที่เท่าเทียมกันและภาษาเป็นปกติถ้าจำนวนของความเท่าเทียมกันในระดับเท่ากันเสมอโมดูโลจำกัด หากไม่ปกติการดึงหนึ่งคำจากแต่ละคลาสที่เท่ากันจะประกอบด้วยชุดคำที่ไม่เท่ากันLLLLLL


1

ได้รับภาษาสำหรับสตริงทุกมีชุดของสตริงดังกล่าวที่L แต่ละชุดสามารถใช้เป็นสถานะในเครื่องรัฐได้LxyxyL

สิ่งที่คุณต้องทำคือการแสดงให้เห็นว่าจำนวนชุดดังกล่าวนั้นไม่ จำกัด

ในฐานะที่เป็นตัวอย่างให้0} ป.ร. ให้สำหรับบางสตริงเพียงดังกล่าวที่คือ{n-1} ดังนั้นสำหรับทุก ๆเรามีเซตที่แตกต่างกันซึ่งหมายความว่าไม่ปกติL=anbn:n0x=anbn1yxyLy=bn1nL

ดังนั้นโดยทั่วไปถ้าคุณพบว่าชุดที่ไม่มีที่สิ้นสุดของสตริงเช่นกันว่าให้ชุดที่แตกต่างกันแล้วภาษาที่ไม่สามารถได้รับการยอมรับโดยเครื่องสถานะ จำกัด และดังนั้นจึงไม่ได้เป็นปกติxx{y:xyL}


นี่ไม่ใช่แค่ Myhill-Nerode หรือ
David Richerby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.