การค้นหาตัวอย่างของภาษาที่เป็น "anti-palindromic"


15

Let\} ภาษาจะกล่าวว่ามีคุณสมบัติ "ป้องกัน palindrome" ถ้าสตริงทุกที่เป็น palindrome ที่L นอกจากนี้สำหรับสตริงทุกตัวที่ไม่ใช่ palindrome ไม่ว่าจะเป็นหรือแต่ไม่ใช่ทั้งสองอย่าง (!) (พิเศษหรือ)L Σ * W W L ยูยูL R อีวีอีอาร์เอสอี ( U ) LΣ={0,1}LΣwwLuuLReverse(u)L

ฉันเข้าใจคุณสมบัติต่อต้าน palindrome แต่ฉันไม่พบภาษาใด ๆ ที่มีคุณสมบัตินี้ ที่ใกล้เคียงที่สุดที่ฉันสามารถหาเป็นแต่มันไม่ได้มี แต่เพียงผู้เดียวหรือบางส่วน ... ที่เป็นเช่นทั้งและอยู่ในL01 10 LΣL0110L

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


"ฉันไม่พบภาษาใด ๆ ที่มีคุณสมบัตินี้" - คุณเพิ่งกำหนดหนึ่งโดยให้ทรัพย์สินโดยสมมติว่ามีภาษาใด ๆที่ตอบสนองเงื่อนไข
Raphael

7
ฉันไม่เห็นด้วยสิ่งที่เขานิยามไว้คือคลาสของภาษา ที่ไม่ได้เป็นคำนิยามที่กำหนดไว้อย่างดีสำหรับภาษา
Shreesh

คำตอบ:


12

ตัวอย่างหนึ่งจะเป็น }L={x  |  binary(x)<binary(xR),x[0,1]}

และอีกตัวอย่างหนึ่ง }L={x  |  binary(x)>binary(xR),x[0,1]}

แนวคิดคือถ้าคุณสร้างกฎเพื่อเลือกหนึ่งในนั้น คุณต้องเลือกกฎที่ palindromes ควรถูกปฏิเสธ ( f ( x ) < f ( x R ) , สำหรับ palindromes คุณต้องมีf ( x ) = f ( x R ) ) คุณยังสามารถเปลี่ยนตัวอักษรฉันได้ ตัวอักษรไบนารีเพียงเพื่อให้ได้คำตอบอย่างรวดเร็วxxRf(x)<f(xR)f(x)=f(xR)

และ L ด้านบนไม่ใช่แบบปกติ และทุกภาษาต่อต้าน Palindromicจะไม่ปกติและอาจไม่ดีเท่าภาษาที่ไม่ใช่ RE ความสามารถในการใช้ภาษา undecidable: L = { x | ดังกล่าวว่าฉันn R Y ( x ) < ผมn R Y ( x R )ถ้าทั้งสอง xและ x Rหยุดหรือทั้งจำทั้ง xและ x Rหยุดมิฉะนั้นถ้าLLL={x  |  binary(x)<binary(xR)xxR xxR Halt }x}

Klaus Draegerอธิบายในความคิดเห็นด้านล่างว่าภาษาต่อต้าน palindromic ที่กำหนดไว้ในตอนต้นของคำตอบนั้นไม่มีบริบท: L={x0y1xR | x,y{0,1}}


ฉันเข้าใจแล้วดังนั้นจึงเป็นความจริงที่ภาษาต่อต้าน palindrome ทุกภาษานั้นไม่ปกติ แต่สามารถพูดได้ไหมว่ามันต้องอยู่ใน ? เพราะถึงแม้จะขยายความคิดนี้ทุกคำสั่ง / ฟังก์ชั่นที่เราจะใช้สามารถคำนวณด้วย TM ในR .. ได้หรือไม่ RR
Marik S.

@Marik มีฟังก์ชั่นที่กำหนดชัดเจน แต่ไม่สามารถคำนวณ ได้ ตัวอย่างเช่นการแมปจากตัวเลขที่แสดงถึง M ในปัญหาการหยุดพักไปจนถึง [0,1]
Shreesh

ใช่ แต่ฟังก์ชั่นดังกล่าวจะสามารถกำหนดลำดับรวมในหรือไม่ Σ
Marik S.

1
ใช่. ตัวอย่างเช่นถ้าทั้งสองxและx Rหรือ หยุดมิฉะนั้นxหรือx Rแล้วแต่จำนวนใดจะหยุดใน} หยุดทั้งหมด( M , w )เช่นนั้นML={x|xxR,binary(x)<binary(xR)xxRxxR}(M,w)MหยุดพักในWw
Shreesh

1
และถ้าคุณใช้ภาษาที่ทำให้เกิดเส้นทแยงมุมแล้วมันจะกลายเป็นไม่ใช่ - RE
Shreesh

10

เกี่ยวกับการสร้างตัวอย่างเล็ก ๆ น้อย ๆ :

จากคำตอบของ @shreesh เราสามารถพิสูจน์ได้ว่าทุกภาษาต่อต้าน Palindrome ต้องเป็นรูปแบบ สำหรับบางคนการสั่งซื้อทั้งหมดเข้มงวด<

L={x | x<xR}()
<

แน่นอนด้วย anti-palindrome เราสามารถนิยาม<ที่เกี่ยวข้องดังนี้ เราเริ่มต้นด้วยการแจกแจงx 0 , x 1 , จาก{ 0 , 1 } โดยที่แต่ละคำนั้นเกิดขึ้นเพียงครั้งเดียว จากนั้นเราเปลี่ยนการแจงนับ: สำหรับคู่ที่ไม่ใช่ palindromes x , x Rเราจะสลับตำแหน่งของพวกเขาเพื่อให้อันที่เป็นของLปรากฏต่อหน้าอีกคู่หนึ่ง แจงนับใหม่ก่อให้เกิดการสั่งซื้อทั้งหมด<ความพึงพอใจ( * )L<x0,x1,{0,1}x,xRL<()

ทุกตัวนิยามว่า( )นั้นไม่ใช่ palindrome นั้นเป็นเรื่องเล็กน้อยดังนั้น( )จึงเป็นลักษณะที่สมบูรณ์ของภาษาที่ไม่ใช่ palindromeL()()

Addressing คำถามเดิมตอนนี้เรารู้ว่าเราสามารถได้รับหลายตัวอย่างของการต่อต้าน palindrome ภาษาโดยงานหัตถกรรม orderings < เรารู้ด้วยว่าการทำเช่นนั้นเราไม่ได้ จำกัด ตัวเองเป็นคลาสย่อยของภาษาL<


เกี่ยวกับคำถาม "ภาษาเหล่านี้เป็นปกติหรือไม่":

ในการพิสูจน์ว่าแอนตี้ - แพลินโดรมไม่ได้เป็นปกติใด ๆให้ถือว่าความขัดแย้งนั้นเป็นเรื่องปกติL

  1. เนื่องจากระเบียบถูกเก็บรักษาไว้โดยการพลิกกลับ , ยังเป็นปกติLR
  2. เนื่องจากความสม่ำเสมอจะได้รับการเก็บรักษาโดยการรวมกลุ่มซึ่งเป็นกลุ่มของกลุ่มที่ไม่ใช่ palindromes ก็เป็นปกติเช่นกันLLR
  3. เนื่องจากความสมบูรณ์จะได้รับการเก็บรักษาไว้เป็นปกติชุดของ palindromes ทั้งหมดจึงเป็นปกติ

จากคำสั่งสุดท้ายเราสามารถได้รับความขัดแย้งโดยการปั๊ม (ดูเช่นที่นี่เพื่อหาวิธีแก้ปัญหา)


1
หรือมากกว่านั้นง่ายๆคุณสามารถสังเกตได้ว่าเพื่อให้ DFA ยอมรับภาษาของ palindromes นั้นจำเป็นต้องพิจารณาครึ่งแรกของสตริงในขณะที่แยกวิเคราะห์ครึ่งปีหลัง - แต่ DFA มีจำนวน จำกัด ของรัฐและไม่สามารถจัดเก็บ สายยาวโดยพลการ มันเป็นเหตุผลเดียวกับที่แสดงให้เห็นว่าภาษาของวงเล็บที่สมดุลนั้นไม่ปกติ (ความลึกของ paren สามารถใหญ่โดยพลการ)
เควิน

ฉันเห็น แต่ถ้าใด ๆที่มีคุณสมบัตินี้ถ้าจากรูปแบบL = { x | x < x R }ระบุว่าทุกภาษามีบริบทฟรีหรือไม่ หรือถ้าไม่ใช่ CFL จะต้องอยู่ในRหรือไม่? เนื่องจากทุกคำสั่ง<สามารถคำนวณได้ในRด้วย TM LL={x|x<xR}R<R
Marik S.

@MarikS ไวยากรณ์ของ rici ด้านล่างพิสูจน์ว่าสามารถปราศจากบริบท ฉันค่อนข้างมั่นใจว่าLบางตัวไม่ใช่แบบเรียกซ้ำเนื่องจากมีภาษาดังกล่าวมากมาย - ในการพิสูจน์ของฉันด้านบนเราสามารถเลือกอนันต์ได้นับไม่ถ้วนว่าจะให้อันดับแรกระหว่างxและx Rและแต่ละการรวมกันจะให้L ที่แตกต่างกัน. ดังนั้นความสำคัญของภาษาเหล่านี้จึงเหมือนกันกับ{ 0 , 1 } Nซึ่งนับไม่ได้ LLxxRL{0,1}N
Chi

9

สำหรับสิ่งที่คุ้มค่าต่อไปนี้เป็นไวยากรณ์ที่ไม่ต้องใช้บริบทสำหรับภาษาต่อต้าน palindromic หนึ่งภาษา:

S0S01S10X1XϵX0X1

(อันที่จริงนี่เป็นภาษาต่อต้าน Palindromic ที่เสนอโดย @shreesh โดยใช้การเปรียบเทียบพจนานุกรมสำหรับผู้ใช้ที่น้อยกว่า)


8
ซึ่งนำไปสู่คำอธิบายที่ชัดเจนยิ่งขึ้น: } L={x0y1xR | x,y{0,1}}
Klaus Draeger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.