ความคิดเห็นของ 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=FPNP∩coNP
NPMV⊈NPSVNPSVNPMV⊆cfgxgffมักจะเป็นส่วนหนึ่งของผลของกรัมคำถามที่ถูกต้องคือว่า "function" ทุกตัวมีการปรับแต่ง ถ้าเป็นเช่นนั้นเราเขียน{NPSV}gNPMVNPSVNPMV⊆cNPSV
- PF (มาตรฐานน้อยกว่าเล็กน้อย) คือคลาสของฟังก์ชัน (อาจเป็นบางส่วน) ที่คำนวณได้ในเวลาโพลี นั่นคือฟังก์ชั่น ( ) อยู่ในหากมีเครื่องกำหนดเวลาแบบโพลี - เวลาเช่นนั้นในอินพุตที่ เครื่องจักรเอาท์พุตและอินพุตเครื่องไม่มีเอาต์พุต (/ ปฏิเสธ / บอกว่า "ไม่" / อย่างไรก็ตามคุณต้องการวลีมัน)f:D→Σ∗D⊆Σ∗PFx∈Df(x)x∉D
FNPเป็นคลาสของ "ปัญหาฟังก์ชัน" (แทนที่จะเป็นคลาสของฟังก์ชัน) ฉันจะเรียกเป็น "relational class" แต่จริงๆแล้วคำพูดใด ๆ ที่คุณใช้เพื่ออธิบายคุณจำเป็นต้องอธิบายตัวเองในภายหลังซึ่งเป็นเหตุผลว่าทำไมฉันถึงไม่ได้เป็นส่วนหนึ่งของคำนิยามนี้ สำหรับความสัมพันธ์แบบไบนารีใด ๆมีปัญหา "ฟังก์ชั่น" ที่เกี่ยวข้อง ปัญหาฟังก์ชั่นคืออะไร? ฉันไม่มีคำจำกัดความทางคณิตศาสตร์ที่สะอาดเหมือนที่ฉันทำกับภาษา / ฟังก์ชั่น / ความสัมพันธ์ ค่อนข้างมันถูกกำหนดโดยสิ่งที่เป็นวิธีการแก้ปัญหาที่ถูกต้องคือการแก้ปัญหาที่ถูกต้องของปัญหาฟังก์ชั่นที่เกี่ยวข้องกับคือฟังก์ชั่นใด ๆ (อาจเป็นบางส่วน)เช่นถ้าFNPR⊆Σ∗×Σ∗Rf(∃y)[R(x,y)]fผลลัพธ์ใด ๆ, และไม่ส่งออกใด ๆ เป็นคลาสของปัญหาการทำงานที่เกี่ยวข้องกับความสัมพันธ์เช่น (เมื่อพิจารณาว่าเป็นภาษาของคู่) และเป็น p-balance ดังนั้นไม่ใช่คลาสของฟังก์ชั่นหรือคลาสของภาษา แต่เป็นคลาสของ "ปัญหาเกี่ยวกับฟังก์ชัน" โดยที่ "ปัญหา" ที่นี่ถูกกำหนดอย่างคร่าวๆในแง่ของความหมายในการแก้ปัญหาyfFNPRR∈PFNP
TFNPเป็นชั้นของปัญหาการทำงานใน - กำหนดโดยความสัมพันธ์ข้างต้น - ดังกล่าวคือทั้งหมดในแง่ที่ว่าทุก ๆมีที่ .FNPRRxyR(x,y)
เพื่อที่จะไม่ต้องเขียนสิ่งต่าง ๆ เช่น "ถ้าทุก (resp., ) ปัญหาฟังก์ชั่นมีทางออกใน (resp.,ตามข้างต้น นิยาม) จากนั้น ... "ในบริบทนี้ใช้นิยาม 2 ของซึ่งก็คือ:FNPTFNPPFFPFP
- FP (คำจำกัดความ 2) เป็นคลาสของปัญหาฟังก์ชันในซึ่งมีวิธีการแก้ปัญหาแบบโพลี - เวลา หนึ่งสามารถสรุปได้ว่าวิธีการแก้ปัญหา (= ฟังก์ชั่น) นี่คือผลรวมโดยการเลือกสตริงพิเศษที่ไม่ถูกต้องสำหรับการใด ๆและมีฟังก์ชั่นการส่งออกเมื่อมีมิฉะนั้นจะไม่สามารถใช้งานปี(หากจำเป็นเราสามารถแก้ไขความสัมพันธ์โดยเติมทุก ๆด้วย 1 แล้วนำมาเป็นสตริง 0 ซึ่งจะไม่เปลี่ยนความซับซ้อนของสิ่งที่เกี่ยวข้อง)FNPy0yxy0yRyy0
นี่คือความหมายต่าง ๆ ที่เกี่ยวข้องกับคำนิยามเหล่านี้ (คำจำกัดความ 2 ซึ่งเป็นสิ่งที่คุณควรถือว่าเนื่องจากอยู่ในบริบทที่มีการเปรียบเทียบกับ ) เพื่อ{PF} (def 2) เทียบเท่ากับ (def 1)FNP⊆FPFNPNPMV⊆cPFTFNP⊆FPNPMVt⊆cFP