อะไรคือคลาส FP, FNP และ TFNP


13

ในหนังสือของเขาการคำนวณความซับซ้อน Papadimitriou กำหนดFNPดังนี้

สมมติว่าภาษาในNP ตามข้อเสนอที่ 9.1 มีพหุนาม - เวลาที่ถอดรหัสได้ความสัมพันธ์เชิงพหุนามที่สมดุลอาร์แอลเช่นนั้นสำหรับทุกสายx : มีสตริงy ที่มีR L ( x , y )ถ้าหากx Lเท่านั้น ปัญหาฟังก์ชั่นที่เกี่ยวข้องกับLแสดงว่าF Lเป็นปัญหาการคำนวณต่อไปนี้:LRLxyRL(x,y)xLLFL

รับหาสตริงyซึ่งR L ( x , y )ถ้ามีสตริงอยู่; หากไม่มีสตริงดังกล่าวอยู่ให้ส่งคืน "no"xyRL(x,y)

ชั้นของปัญหาที่ฟังก์ชั่นทั้งหมดที่เกี่ยวข้องดังกล่าวข้างต้นด้วยภาษาในNPเรียกว่าพร่ำ FPเป็นคลาสย่อยที่เกิดขึ้นถ้าเราพิจารณาเฉพาะปัญหาของฟังก์ชั่นในFNPที่สามารถแก้ไขได้ในเวลาพหุนาม

( ... )

( ... ) เราเรียกปัญหาในพร่ำทั้งหมดถ้าสตริงทุกxมีอย่างน้อยหนึ่งปีเช่นว่าR ( x , Y ) ประเภทรองของพร่ำมีปัญหาฟังก์ชั่นรวมทั้งหมดจะถูกแสดงTFNPR xyR(x,y)

ในแผนภาพเวนน์ในภาพรวมบท Papadimitriou หมายความว่าFP TFNP พร่ำ

ฉันมีความเข้าใจยากว่าทำไมมันจึงถือได้ว่าFP TFNPเนื่องจากปัญหาในFPไม่จำเป็นต้องมีทั้งหมดต่อ se

เพื่อความเข้าใจที่ดียิ่งขึ้นฉันได้ทำการไถนาวรรณคดีเพื่อค้นหาคำจำกัดความกันน้ำของFP , FNPและการเรียงลำดับโดยไม่ประสบความสำเร็จ

ในความเห็นที่ถ่อมตัวของฉันฉันคิดว่ามีเนื้อหาเกี่ยวกับการสอนในหัวข้อเหล่านี้น้อยมาก (ถูกต้อง!)

สำหรับปัญหาในการตัดสินใจชั้นเรียนเป็นชุดของภาษา (เช่นชุดของสตริง)

คลาสสำหรับปัญหาเกี่ยวกับฟังก์ชันคืออะไร พวกเขามีความสัมพันธ์ภาษาหรือไม่? คำจำกัดความที่มั่นคงคืออะไร


4
สัญกรณ์ทั่วไปค่อนข้างเลอะเทอะ ก่อนอื่น FP คือและถูกใช้เพื่อแสดงคลาสของฟังก์ชั่นโพลี - ไทม์(ด้วยเหตุนี้ทั้งหมด) นอกบริบทของปัญหาการค้นหา NP ที่มันถูกนิยามใหม่ ประการที่สองปัญหาการค้นหาทั้งหมดที่แก้ไขได้ในเวลาพหุนามมีส่วนขยายทั้งหมดที่แก้ไขได้ในเวลาพหุนามดังนั้นในแง่นั้นจึงไม่มีความแตกต่างที่แท้จริงระหว่างคำจำกัดความทั้งหมดและไม่รวมของ FP ดังนั้นทั้งสองจึงถูกทาบทามด้วยการใช้ภาษา
Emil Jeřábek

คำตอบ:


11

ความคิดเห็นของ Emil Jerabek เป็นบทสรุปที่ดี แต่ฉันต้องการชี้ให้เห็นว่ามีคลาสอื่น ๆ ที่มีคำจำกัดความที่ชัดเจนกว่าซึ่งจับภาพแนวคิดเดียวกันมากขึ้นหรือน้อยลงและเพื่ออธิบายความสัมพันธ์ระหว่างสิ่งเหล่านี้ทั้งหมด

[คำเตือน: ในขณะที่ฉันเชื่อว่าฉันได้คำจำกัดความที่ถูกต้องบางสิ่งด้านล่างสะท้อนถึงความชอบส่วนตัวของฉัน - ฉันพยายามที่จะชัดเจนเกี่ยวกับที่ที่เป็นอยู่]

ในโลกที่กำหนดขึ้นคลาสฟังก์ชั่นเป็นเพียงชุดของฟังก์ชั่น (ตามปกติความหมายทางคณิตศาสตร์ของคำว่า "ฟังก์ชั่น" นั่นคือแผนที่ ) บางครั้งเราต้องการอนุญาตให้ "ฟังก์ชั่นบางส่วน" ซึ่งมีเอาต์พุตเป็น "undefined" สำหรับอินพุตบางอย่าง (เทียบเท่าฟังก์ชั่นที่กำหนดไว้ในส่วนย่อยของΣ มากกว่าทั้งหมด)ΣΣΣ

น่าเสียดายที่มีคำจำกัดความที่แตกต่างกันสองประการสำหรับลอยไปมาและเท่าที่ฉันสามารถบอกได้ว่าพวกเขาไม่เท่ากัน (แม้ว่าพวกเขาจะเทียบเท่า "ศีลธรรม")FP

  • (นิยาม 1) เป็นคลาสของฟังก์ชันที่สามารถคำนวณได้ในเวลาพหุนาม เมื่อใดก็ตามที่คุณเห็น F Pและไม่อยู่ในบริบทที่ผู้คนกำลังพูดถึง F N P , T F N Pนี่คือคำจำกัดความที่ฉันคิดFPFPFNP,TFNP

ในโลกที่ไม่คุ้นเคยแบบนี้มันตลกไปหน่อย มีความสะดวกในการอนุญาตให้ "ฟังก์ชั่นบางส่วนมูลค่าหลายค่า" มันจะเป็นธรรมชาติที่จะยังเรียกร้องดังกล่าวเป็นสิ่งฐานความสัมพันธ์ที่เป็นส่วนหนึ่งของ * แต่จากมุมมองที่ซับซ้อนมันมักจะมีประโยชน์ทางปรัชญาและจิตใจที่จะคิดว่าสิ่งเหล่านี้เป็น "หน้าที่ nondeterministic" ฉันคิดว่าคำจำกัดความเหล่านี้จำนวนมากถูกอธิบายโดยคลาสต่อไปนี้ (ซึ่งคำจำกัดความเป็นมาตรฐานอย่างสมบูรณ์หากไม่เป็นที่รู้จักกันดี):Σ×Σ

  • : คลาสของ "ฟังก์ชั่นบางส่วน, มูลค่าหลายค่า" คำนวณโดยเครื่อง nondeterministic ในเวลาพหุนาม สิ่งนี้หมายความว่ามีเครื่องโพลีเวลา nondeterministic และในการป้อนข้อมูล xในแต่ละสาขา nondeterministic มันอาจเลือกที่จะยอมรับและทำให้การส่งออกบางส่วนหรือปฏิเสธและทำให้ไม่มีเอาท์พุท เอาต์พุต "ค่าหลายค่า" บนอินพุต xจากนั้นเป็นชุดของเอาต์พุตทั้งหมดในสาขา nondeterministic ทั้งหมดเมื่อกำหนด xเป็นอินพุต โปรดทราบว่าชุดนี้สามารถว่างได้ดังนั้นในฐานะที่เป็น "ฟังก์ชั่นที่มีหลายค่า" นี้อาจเป็นเพียงบางส่วนเท่านั้น หากเรานึกถึงมันในแง่ของความสัมพันธ์แบบไบนารีสิ่งนี้สอดคล้องกับความสัมพันธ์ { ( x , y ) : yNPMVxxx }{(x,y):y is output by some branch of the computation on input x}

  • : รวม "ฟังก์ชั่น" ใน N P M Vนั่นคือในทุกอินพุตxอย่างน้อยหนึ่งสาขายอมรับ (และทำให้การส่งออกตามคำนิยาม)NPMVtNPMVx

  • NPSVNPMVΣ

  • NPSVtNPSVΣΣNPSVt=FPNPcoNP

NPMVNPSVNPSVNPMVcfgxgffมักจะเป็นส่วนหนึ่งของผลของกรัมคำถามที่ถูกต้องคือว่า "function" ทุกตัวมีการปรับแต่ง ถ้าเป็นเช่นนั้นเราเขียน{NPSV}gNPMVNPSVNPMVcNPSV

  • PF (มาตรฐานน้อยกว่าเล็กน้อย) คือคลาสของฟังก์ชัน (อาจเป็นบางส่วน) ที่คำนวณได้ในเวลาโพลี นั่นคือฟังก์ชั่น ( ) อยู่ในหากมีเครื่องกำหนดเวลาแบบโพลี - เวลาเช่นนั้นในอินพุตที่ เครื่องจักรเอาท์พุตและอินพุตเครื่องไม่มีเอาต์พุต (/ ปฏิเสธ / บอกว่า "ไม่" / อย่างไรก็ตามคุณต้องการวลีมัน)f:DΣDΣPFxDf(x)xD

  • FNPเป็นคลาสของ "ปัญหาฟังก์ชัน" (แทนที่จะเป็นคลาสของฟังก์ชัน) ฉันจะเรียกเป็น "relational class" แต่จริงๆแล้วคำพูดใด ๆ ที่คุณใช้เพื่ออธิบายคุณจำเป็นต้องอธิบายตัวเองในภายหลังซึ่งเป็นเหตุผลว่าทำไมฉันถึงไม่ได้เป็นส่วนหนึ่งของคำนิยามนี้ สำหรับความสัมพันธ์แบบไบนารีใด ๆมีปัญหา "ฟังก์ชั่น" ที่เกี่ยวข้อง ปัญหาฟังก์ชั่นคืออะไร? ฉันไม่มีคำจำกัดความทางคณิตศาสตร์ที่สะอาดเหมือนที่ฉันทำกับภาษา / ฟังก์ชั่น / ความสัมพันธ์ ค่อนข้างมันถูกกำหนดโดยสิ่งที่เป็นวิธีการแก้ปัญหาที่ถูกต้องคือการแก้ปัญหาที่ถูกต้องของปัญหาฟังก์ชั่นที่เกี่ยวข้องกับคือฟังก์ชั่นใด ๆ (อาจเป็นบางส่วน)เช่นถ้าFNPRΣ×ΣRf(y)[R(x,y)]fผลลัพธ์ใด ๆ, และไม่ส่งออกใด ๆ เป็นคลาสของปัญหาการทำงานที่เกี่ยวข้องกับความสัมพันธ์เช่น (เมื่อพิจารณาว่าเป็นภาษาของคู่) และเป็น p-balance ดังนั้นไม่ใช่คลาสของฟังก์ชั่นหรือคลาสของภาษา แต่เป็นคลาสของ "ปัญหาเกี่ยวกับฟังก์ชัน" โดยที่ "ปัญหา" ที่นี่ถูกกำหนดอย่างคร่าวๆในแง่ของความหมายในการแก้ปัญหาyfFNPRRPFNP

  • TFNPเป็นชั้นของปัญหาการทำงานใน - กำหนดโดยความสัมพันธ์ข้างต้น - ดังกล่าวคือทั้งหมดในแง่ที่ว่าทุก ๆมีที่ .FNPRRxyR(x,y)

เพื่อที่จะไม่ต้องเขียนสิ่งต่าง ๆ เช่น "ถ้าทุก (resp., ) ปัญหาฟังก์ชั่นมีทางออกใน (resp.,ตามข้างต้น นิยาม) จากนั้น ... "ในบริบทนี้ใช้นิยาม 2 ของซึ่งก็คือ:FNPTFNPPFFPFP

  • FP (คำจำกัดความ 2) เป็นคลาสของปัญหาฟังก์ชันในซึ่งมีวิธีการแก้ปัญหาแบบโพลี - เวลา หนึ่งสามารถสรุปได้ว่าวิธีการแก้ปัญหา (= ฟังก์ชั่น) นี่คือผลรวมโดยการเลือกสตริงพิเศษที่ไม่ถูกต้องสำหรับการใด ๆและมีฟังก์ชั่นการส่งออกเมื่อมีมิฉะนั้นจะไม่สามารถใช้งานปี(หากจำเป็นเราสามารถแก้ไขความสัมพันธ์โดยเติมทุก ๆด้วย 1 แล้วนำมาเป็นสตริง 0 ซึ่งจะไม่เปลี่ยนความซับซ้อนของสิ่งที่เกี่ยวข้อง)FNPy0yxy0yRyy0

นี่คือความหมายต่าง ๆ ที่เกี่ยวข้องกับคำนิยามเหล่านี้ (คำจำกัดความ 2 ซึ่งเป็นสิ่งที่คุณควรถือว่าเนื่องจากอยู่ในบริบทที่มีการเปรียบเทียบกับ ) เพื่อ{PF} (def 2) เทียบเท่ากับ (def 1)FNPFPFNPNPMVcPFTFNPFPNPMVtcFP


ขอบคุณสำหรับคำตอบมากมาย ฉันพยายามที่จะแยกแยะมันและมันมีประโยชน์มากจนถึงตอนนี้ ฉันถือว่าคุณหมายถึงFP FNPและFP TFNPในย่อหน้าสุดท้ายหรือไม่
Auberon

1
@ Auberon: ไม่ย่อหน้าสุดท้ายคือการแปลระหว่างการคาดเดาต่างๆ มันบอกว่าฯลฯFNPFPNPMVcPF
Joshua Grochow

@JoshuaGrochowหรือเป็นไปได้หรือลำดับชั้นยุบลง? นอกจากนี้ยังไม่ในหรือโอละพ่อถือ (ดูเหมือนว่าเป็นไปตามที่มีดูเหมือนไม่มีความหมายทางใดทางหนึ่ง)? NPPTFNPNPPUPPUPPTFNP
T ....

3

นอกจากคำตอบที่กว้างขวางของ Joshua ฉันต้องการเพิ่มคำจำกัดความต่อไปนี้จาก Elaine Ruch ออโตมาตะการคำนวณและความซับซ้อนของเธอ

The Class FP : ไบนารีสัมพันธ์อยู่ใน IFF มีขั้นตอนวิธีการกำหนดเวลาพหุนามว่าได้รับการป้อนข้อมูลโดยพลสามารถหาบางเช่นว่าQQFPxy(x,y)Q

The Class พร่ำ : ไบนารีสัมพันธ์อยู่ใน IFF มีเวลาพหุนามกำหนดตรวจสอบให้คู่อินพุตพลกำหนดว่าQ เท่าเทียมกันอยู่ใน iff มีอัลกอริธึมเวลาพหุนาม nondeterministic ที่กำหนดให้ป้อนข้อมูลโดยพลการสามารถหาเช่นนั้นQFNP(x,y)(x,y)QQFNPxy(x,y)Q

จากคำนิยามเหล่านี้เป็นที่ชัดเจนว่า{} นอกจากนี้เธอยังพูดถึงเวลาสั้น ๆ เกี่ยวกับปัญหาด้านนอกของ{}F N PFPTFNPFNPFNP

สำหรับฉันนี่เป็นทรัพยากรที่น่าพึงพอใจที่สุดที่ประกอบไปด้วยหน้าเดียวที่ฉันค้นพบมาเป็นเวลานาน


หลังจากที่ฉันได้ให้คำจำกัดความความคิดเหล่านี้ฉันสงสัยว่าคำจำกัดความ 'เทียบเท่า' สองคำของไม่เท่ากันเลย ...FNP
Auberon

py(x,y)Qy|y|p(|x|)y
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.