มี DFA กี่ตัวที่ยอมรับสตริงที่กำหนดสองชุด


28

แก้ไขจำนวนเต็มnnและตัวอักษรΣ = { 0 , 1Σ={0,1} } กำหนดD F A ( n )DFA(n)ให้เป็นคอลเลกชันของออโตมาตา จำกัด ทั้งหมดในnnรัฐด้วยสถานะเริ่มต้น 1 เรากำลังพิจารณาDFAs ทั้งหมด (ไม่ใช่แค่การเชื่อมต่อที่น้อยที่สุด จึง| D F A ( n ) | = n 2 n 2|DFA(n)|=n2n2n n

ตอนนี้พิจารณาสองสตริงx , y ที่Σ *และกำหนดK ( x , Y )ให้เป็นจำนวนขององค์ประกอบของD F ( n )ที่ยอมรับทั้งxและy ที่x,yΣK(x,y)DFA(n) xy

คำถาม: ความซับซ้อนของการคำนวณK ( x , y )คืออะไร?K(x,y)

คำถามนี้มีผลกระทบต่อการเรียนรู้เครื่อง

แก้ไข: ตอนนี้มีคำถามมากมายเกี่ยวกับคำถามนี้ฉันคิดว่ามีความแม่นยำมากขึ้นในการกำหนดสูตร สำหรับn 1ให้D F A ( n )เป็นชุดของn 2 n 2 nออโตมาตะตามที่กำหนดไว้ข้างต้น สำหรับx , y { 0 , 1 } , ให้นิยามK n ( x , y )ให้เป็นจำนวนออโตมาตาในD F A ( n )ที่ยอมรับทั้งคู่n1DFA(n)n2n2nx,y{0,1}Kn(x,y)DFA(n) xและy ที่ คำถาม: สามารถคำนวณ K n ( x , y )ได้ในเวลา p o l y ( n , | x | , | y | )หรือไม่xyKn(x,y)poly(n,|x|,|y|)


2
หากคุณแก้ไข DFA โดยไม่แก้ไขสถานะสุดท้ายให้ระบุแมป x และ y ให้อยู่ในสถานะเดียวกันซึ่งในกรณีนี้ข้อ จำกัด เพียงอย่างเดียวคือว่ารัฐจะต้องเป็นครั้งสุดท้ายหรือจะจับคู่กับสถานะอื่นสองสถานะ ข้อ จำกัด เพียงอย่างเดียวคือพวกเขาทั้งคู่จะต้องเป็นที่สิ้นสุด ดังนั้นฉันจะยืนยันปัญหาของคุณอีกว่า "มี DFA จำนวนเท่าใดที่เชื่อมโยง x และ y ไปยังสถานะที่แตกต่างกัน"
a3nm

3
Aryeh คุณช่วยอธิบายการนับn 2 n 2 n ได้ไหม? ฉันไม่สามารถรับปัจจัย2 nได้ เพิ่ม: โอ๊ะฉันลืมระบุสถานะสุดท้าย อย่างไรก็ตามเพื่อประโยชน์ของผู้อื่นนี่คือวิธีการนับไป สำหรับแต่ละรัฐระบุว่าจะไปที่อินพุต0และ1 ; ว่าบัญชีสำหรับn 2 n ระบุชุดสถานะสุดท้าย; ว่า2 n n2n2n2n01n2n2n
Srivatsan Narayanan

2
อันที่จริงผมไม่สนใจสิ่งที่เกิดขึ้นกับสายอื่น ๆ กว่าxและy ที่ ฉันเดาว่าต้องการคะแนนจำนวนหนึ่งเพื่อเริ่มรับรางวัลหรือไม่ xy
Aryeh

4
ออโตเมติกที่เล็กที่สุดที่รับxและyมีสถานะเดียวดังนั้นฉันจึงไม่คิดว่ามันจะให้ข้อมูลที่น่ากลัว ...xy
Aryeh

3
นี่คือความคิด: เราจะต้องทราบหมายเลขของn DFAs -state ซึ่งสิ้นสุดในรัฐเดียวกันกับxและy ที่ ขอหมายเลขนี้จะเป็นม.และเอ็มเป็นจำนวน DFAs คือ M = n 2 n 2 n จากนั้นคำตอบคือ1nxymMM=n2n2n2 m+14 (M-m)นี่ให้ขอบเขต เพื่อคำนวณเมตรคิดอื่นคือการที่เราสามารถลืมเกี่ยวกับส่วนที่เริ่มต้นร่วมกันของxและy ที่และยังคิดว่า WLOGx=0และ=1 เราเท่านั้นที่จะนับจำนวนของ DABs ความไบนารีกับLรัฐและความสูงที่มากที่สุดสูงสุด{,}ที่0และ1ท้ายขึ้นมาในสถานที่เดียวกันและจากว่ามันเป็นเรื่องง่ายที่จะคำนวณเมตร12m+14(Mm)mxyx=0ab=1blmax{a,b}0a1bm
Kaveh

คำตอบ:


1

ดังนั้นคำถามสั้น ๆ แต่น่าสนใจมาก ฉันคิดว่าอินพุตเป็นnในเอกภาพและxและy เป็นเลขฐานสอง (หรือเรามีปัญหาตามที่ระบุโดยคำตอบของไค)nxy

First of all, if you are interested in knowing K(x,y)K(x,y) approximately, then you can just generate a few random DFA's and this will give you (whp) a good approximation. (I wonder if this complexity class has a name.)

จากนั้นการรู้ว่าK ( x , y )ดูเหมือนว่าจะเป็นปัญหาที่ยากลำบาก ตามที่ระบุไว้ในความคิดเห็นโดย a3_nm และ Kaveh คำถามนั้นเทียบเท่ากับการกำหนดจำนวนออโตมาตะที่xK(x,y)x and yy go to the same state. I will denote the probability that they go to the same state by pp.

Update: Some of the things I wrote here were not true, now I fixed them.

มันเป็นเรื่องง่ายที่จะเห็นว่าพี1 / n เรามีความเสมอภาคถ้าxคือ 0 ทั้งหมดและyเป็นศูนย์ทั้งหมดยกเว้นบิตสุดท้ายซึ่งคือ 1 มีกรณีอื่นอีกไหม? ฉันไม่รู้ ถ้าเช่นxคือสตริงว่างและy = 00ดังนั้นp = n + 1p1/nxyxy=00( n - 1 ) np=n+1(n1)n

To simplify the problem, I even started to think about what happens if xx and yy are unary. If both are at least nn and their difference is divisible by n!n!, then p=1p=1. Is there a simple formula for the unary version?


I've clarified the problem -- a poly(n,|x|,|y|)poly(n,|x|,|y|) algorithm is desired (or a reduction from some known hard problem). The sampling approximation is employed in the paper where this kernel is introduced:portal.acm.org/citation.cfm?id=1577108
Aryeh

2
As for the unary version: there are only polynomially many nn-state unary automata, so I would bet that there is a poly-time algorithm for computing Kn(x,y)Kn(x,y) for this case.
Aryeh

Indeed, you are absolutely right that the unary version is computable. I still wonder how simple the formula is for a given x and y.
domotorp

The reduction you have used is buggy: x and y may be accepted by the same automata and end in completely different states, in fact, they may share only the starting state in their paths, which is true for all strings.
amnn

@amnn: It has been three years since I wrote this, but doesn't the third para of my answer explain why I deal only with ending in the same state?
domotorp

0

I may very well be missing the point but you stated that nn is fixed, so all DFAs of that size could be considered precomputed and stored in an easily simulatable format. Compute KK as follows:

On input xx, yy where x,yΣx,yΣ

  1. store xx and yy
  2. initialize counter cc to 00
  3. for each of your n2n2nn2n2n DFAs
  4. a. simulate it on both words (this step is O(|xy|)O(|xy|))

    b. increment cc if both simulation runs are accepting

  5. output cc

Altogether, the computation has linear complexity. The answer is quite different for K(n,x,y)K(n,x,y).


3
Clearly trying all machines will work. Aryeh wants to know if there's, perhaps, a polynomial time algorithm or otherwise some hardness result.
Lev Reyzin

Strictly speaking this is polynomial time in the input, if n is not part of the input, that is what Kai was saying. But the question is clearly different.
domotorp

4
Oh I see. I don't think that's what he means by "fix nn." I think the natural interpretation of the problem is one that doesn't trivialize it.
Lev Reyzin

1
Right, thanks for pointing out the loophole, Kai. It's been fixed :)
Aryeh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.