มีคลาสความซับซ้อนที่สร้างขึ้นพร้อมตัวเลขจริงหรือไม่?


14

เมื่อเร็ว ๆ นี้นักเรียนคนหนึ่งขอให้ฉันตรวจสอบหลักฐานความแข็ง NP สำหรับพวกเขา พวกเขาทำการลดตามแนวของ:

ฉันลดปัญหานี้ที่เป็นที่รู้จักกันว่า NP-complete กับปัญหาPของฉัน(ด้วยการลดโพลีเวลาหลายโพลี) ดังนั้นPคือ NP-hardPPP

คำตอบของฉันเป็นพื้น:

เนื่องจากมีอินสแตนซ์ที่มีค่าจากRจึงไม่มีการคำนวณทัวริงเล็กน้อยดังนั้นคุณสามารถข้ามการลดลงได้PR

ในขณะที่เป็นจริงอย่างเป็นทางการฉันไม่คิดว่าวิธีการนี้มีความชาญฉลาด: เราต้องการที่จะได้รับ "ความซับซ้อนโดยธรรมชาติ" ของการตัดสินใจที่มีคุณค่าจริง ๆ (หรือการเพิ่มประสิทธิภาพ) ปัญหาโดยไม่คำนึงถึงข้อ จำกัด ที่เราเผชิญ หมายเลข; การตรวจสอบปัญหาเหล่านี้เป็นอีกวัน

แน่นอนว่ามันไม่ง่ายเหมือนการพูดเสมอว่า "ผลรวมย่อยของเซ็ตย่อยไม่สมบูรณ์ดังนั้นรุ่นต่อเนื่องคือ 'NP-hard' เช่นกัน" ในกรณีนี้การลดลงทำได้ง่าย แต่มีกรณีที่โด่งดังของรุ่นต่อเนื่องที่ง่ายขึ้นเช่นการเขียนโปรแกรมเชิงเส้นและจำนวนเต็ม

มันเกิดขึ้นกับฉันว่ารุ่น RAM นั้นขยายไปถึงจำนวนจริง อนุญาตให้ทุก register เก็บหมายเลขจริงและขยายการดำเนินงานขั้นพื้นฐานตามลำดับ รูปแบบค่าใช้จ่ายสม่ำเสมอยังคงสมเหตุสมผล - ในกรณีที่ไม่ต่อเนื่องในขณะที่แบบลอการิทึมไม่มี

ดังนั้นคำถามของฉันถึง: มีการกำหนดความซับซ้อนของปัญหาที่มีคุณค่าจริงหรือไม่? พวกเขาเกี่ยวข้องกับคลาสที่ไม่ต่อเนื่อง "มาตรฐาน" อย่างไร

การค้นหาของ Google ให้ผลลัพธ์บางอย่างเช่นนี้แต่ฉันไม่มีวิธีบอกสิ่งที่สร้างขึ้นและ / หรือมีประโยชน์และสิ่งที่ไม่


1
คุณอาจพบว่า "ความซับซ้อนและการคำนวณจริง" ที่น่าสนใจamazon.com/Complexity-Real-Computation-Lenore-Blum/dp/…
Kurt Mueller

ฉันคิดว่าคำตอบของคุณสำหรับนักเรียนของคุณไม่ได้รับการรับรองด้วยเหตุผลง่ายๆ: การคำนวณอะไรก็ตามที่เราใช้ในการดูบนพื้นฐานของ reals สามารถทำได้เช่นกันโดยใช้reals ที่คำนวณได้ ฉันไม่ทราบว่านี่เป็นคำตอบที่ใช้งานได้ตามวัตถุประสงค์ของนักเรียนของคุณหรือไม่ แต่อย่างน้อยก็ควรจะทำอย่างไรหากไม่มีข้อโต้แย้งทัวริงในการคำนวณ น่าเสียดายที่ฉันไม่เชี่ยวชาญพอในประเด็นเหล่านี้เพื่อพัฒนาต่อไป
babou

@babou ตราบใดที่การคำนวณไปนั่นอาจเป็นข้อ จำกัด ที่สมเหตุสมผล (แต่สิ่งหนึ่งที่พวกเขาจะต้องระบุยัง!) อย่างไรก็ตามเกิดอะไรขึ้นกับความซับซ้อน
กราฟิลส์

@ ราฟาเอลจุดของฉันเป็นจริงว่ามันไม่ได้เป็นข้อ จำกัด และไม่จำเป็นต้องระบุ มันหลีกเลี่ยงไม่ได้ reals เดียวที่คุณสามารถพิจารณาในการคำนวณคือ reals ที่คำนวณได้ (วิทยานิพนธ์ -Turing Church) ส่วนที่ดีเห็นได้ชัดว่ามันไม่ได้เปลี่ยนคณิตศาสตร์ใด ๆ ที่เกี่ยวข้องด้วยความระมัดระวัง การก้าวไปไกลกว่า reals ที่คำนวณได้ก็คือการใช้ลำดับชั้นของทัวริงในระดับที่สูงขึ้นการเก็งกำไรที่น่าสนใจ
babou

คำตอบ:


8

ใช่. มี

มีรุ่น real-RAM / BSS ที่กล่าวถึงในคำตอบอื่น ๆ โมเดลมีปัญหาบางอย่างและ AFAIK ไม่มีกิจกรรมการวิจัยเกี่ยวกับเรื่องนี้มากนัก เนื้อหามันไม่ได้เป็นรูปแบบที่มีเหตุผลของการคำนวณ

แนวคิดที่ใช้งานได้จริงของการคำนวณจริงคือโมเดลการคำนวณชนิดที่สูงขึ้น แนวคิดพื้นฐานคือคุณกำหนดความซับซ้อนสำหรับฟังก์ชั่นประเภทที่สูงขึ้นแล้วใช้ฟังก์ชั่นประเภทที่สูงขึ้นเพื่อเป็นตัวแทนของจำนวนจริง

การศึกษาความซับซ้อนของฟังก์ชันประเภทที่สูงกว่ากลับไปที่ [1] เป็นอย่างน้อย สำหรับการทำงานล่าสุดตรวจสอบเอกสารAkitoshi Kawamuraเกี่ยวกับความซับซ้อนของผู้ปฏิบัติงานจริง

การอ้างอิงแบบดั้งเดิมสำหรับความซับซ้อนของฟังก์ชั่นที่แท้จริงคือหนังสือของ Ker-I Ko [2] บทที่ 6 ยิ่งล่าสุดหนังสือโดย Klause Weihrauch [3] ยังกล่าวถึงความซับซ้อนของการคำนวณจริง (แต่มันก็เน้นไปที่การคำนวณมากกว่าความซับซ้อน)

  • [1] สตีเฟ่นคุกและบรูซแคปรอน "ลักษณะของฟังก์ชันพื้นฐานที่เป็นไปได้ของประเภท จำกัด ", 1990

  • [2] Ker-I Ko, "ความซับซ้อนในการคำนวณของฟังก์ชั่นของจริง", 1991

  • [3] Klaus Weihrauch '"การวิเคราะห์ที่คำนวณได้", 2000


ทำให้ฟังก์ชั่นประเภทที่สูงกว่าแบบสมจริงมากขึ้นกว่ารุ่น RAM จริงอะไร
ราฟาเอล

1
@ ราฟาเอลฉันคิดว่าฉันอธิบายมันในคำถามที่เชื่อมโยง หากคุณต้องการการรักษาที่มากขึ้นมีหลายอย่างหนึ่งคือบทที่ 9 ของ Weirauch IIRC อีกสิ่งหนึ่งที่ดีคือบทความโดย Tucker และ Stolenberg-Hansen
Kaveh

1
ในมุมมองของฉันแบบ real-RAM มีสองปัญหาหลัก: ในมือข้างหนึ่งมันขาดความคิดเกี่ยวกับความถูกต้องตามอำเภอใจของจำนวนจริงซึ่งเป็นคุณสมบัติหลักของพวกเขาในทางตรงกันข้ามมันช่วยให้การเปรียบเทียบจำนวนจริงที่ AFAIK ไม่มีใครรู้ วิธีการปฏิบัติ ด้วยเหตุนี้ฟังก์ชั่นจริงบางอย่างที่เราพิจารณาว่าสามารถคำนวณได้อย่างมีประสิทธิภาพในทางปฏิบัติไม่ได้คำนวณในแบบจำลองในขณะที่บางฟังก์ชั่นจริงที่คำนวณได้อย่างมีประสิทธิภาพในแบบจำลองนั้นไม่สามารถคำนวณได้ทั้งหมดในทางปฏิบัติ
Kaveh

@ Kaveh ฉันรู้สึกรำคาญกับการอภิปรายที่ไม่แม่นยำทั้งในคำถามและในคำตอบ เรากำลังพูดถึง reals แบบนับไม่ได้แบบดั้งเดิมหรือของ reals ที่คำนวณได้ จากความคิดเห็นล่าสุดของคุณคุณกำลังพูดถึง "ฟังก์ชั่นจริงที่เราพิจารณาว่าคำนวณได้อย่างมีประสิทธิภาพในทางปฏิบัติ" ดังนั้นฉันมักจะเชื่อว่ามันเป็นเรื่องจริงเกี่ยวกับการคำนวณ คุณหมายถึงอะไรจริง
babou

8

แบบจำลองที่คุณอธิบายนั้นเรียกว่าแบบจำลองBlum-Shub-Smale (BSS) (เช่นรุ่น Real RAM) และใช้เพื่อกำหนดคลาสความซับซ้อน

บางปัญหาที่น่าสนใจในโดเมนนี้เป็นชั้นเรียน , N P Rและแน่นอนคำถามที่ว่าP R = N P R โดยP Rเราหมายถึงปัญหาคือการตัดสินใจแบบพหุนาม, N P Rคือปัญหาที่สามารถตรวจสอบได้ทางพหุนาม มีคำถามที่แข็ง / ครบถ้วนเกี่ยวกับคลาสที่มีN P R ตัวอย่างของปัญหาที่สมบูรณ์แบบN P RคือปัญหาของQ P S , ระบบพหุนาม Quadratic ซึ่งอินพุตเป็นพหุนามจริงในPRNPRPRNPRPRNPRNPRNPRQPSตัวแปรและ P 1 , . . , P nR [ x 1 , . . , x n ]ของระดับสูงสุด 2 และพหุนามแต่ละอันมีตัวแปรได้สูงสุด 3 ตัว คำถามว่ามีวิธีการแก้ปัญหาที่พบบ่อยจริง R nเช่นว่าพี1 ( ) , P 2 ( ) , . . p n ( a ) = 0mp1,...,pn R[x1,...,xn]Rnp1(a),p2(a),...pn(a)=0. นี่เป็นปัญหาที่สมบูรณ์แบบNPR

แต่ที่น่าสนใจยิ่งกว่านั้นก็คืองานบางอย่างเกี่ยวกับความสัมพันธ์ระหว่าง , (หลักฐานพิสูจน์ได้แบบ Probalistically Checkable) เหนือ Reals เช่นคลาสP C P Rและวิธีการที่เกี่ยวข้องกับแบบจำลองการคำนวณพีชคณิต โมเดล BSS หันหน้าไปทางN P ส่วนเกินทั้งหมด นี่คือมาตรฐานในวรรณคดีและสิ่งที่เรารู้ในวันนี้คือN P Rมี "การพิสูจน์แบบยาวที่โปร่งใส" และ "การพิสูจน์แบบสั้นแบบโปร่งใส" โดย "การพิสูจน์แบบยาวโปร่งใส" ข้อมูลต่อไปนี้ถูกบอกเป็นนัย: N P Rมีอยู่ในP C P R ( p o l yPCPPCPRNPNPRNPRPCPR(poly,O(1)). นอกจากนี้ยังมีส่วนขยายที่กล่าวว่า "รุ่นสั้นเกือบ (โดยประมาณ)" ก็เป็นจริงเช่นกัน เราสามารถทำให้เสถียรของการพิสูจน์และตรวจจับความผิดพลาดได้โดยการตรวจสอบส่วนประกอบ (ของจริง) น้อยกว่ามากหรือไม่? สิ่งนี้นำไปสู่คำถามเกี่ยวกับการดำรงอยู่ของศูนย์สำหรับ (ระบบของ) ชื่อพหุนามแบบไม่รวมที่กำหนดโดยโปรแกรมเส้นตรง นอกจากนี้เรายังหมายถึง "การพิสูจน์ความโปร่งใสที่ยาวนาน"n

  1. "โปร่งใส" - เท่านั้นต้องอ่าน ( 1 )เท่านั้นO(1)

  2. long - polynomial จำนวนมากของส่วนประกอบจริง

3SATFPNPRNPR = co-NPR

While thinking of the class NPR, there are counting classes also defined to allow for reasoning about polynomial arithmetic. While #P is the class of functions f defined over {0,1} N for which there exists a polynomial time Turing machine M and a polynomial p with the property that nN, and x{0,1}n, f(x) counts the number of strings y{0,1}p(n)that the Turing Machine M accepts {x,y}. For reals we extend this idea there are additive BSS machines - BSS machines that do only addition, and multiplications (no divisions, no subtractions). With additive BSS machines(nodes in computation only allow addition, and multiplication) the model for #P becomes one in which the count is over the vectors that the additive BSS machines accepts. So, the counting class is #Padd this class is useful in the study of Betti numbers, and also the Euler characteristic.


The real-RAM(Random Access Machine), or BSS(Blum-Shub-Smale) machine is the model, mentioned earlier is widely accepted as norm for reasoning about these classes.
user3483902

No, that claim is absolutely false. E.g. have a look at CCA-Net and see how many researchers are using that model.
Kaveh

Well, the models used for the complexity classes in the post use the BSS model, and as time progresses there may be other models, do those other models work with the complexity classes in the post? BTW, the comment was a clarification about the models used in the classes in concern, which the post addressed, so there was no clarification as to whether there other models. Again, the clarification was about the models used in the classes, there was no claim.
user3483902
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.