ลดความซับซ้อนด้วยการขนาน


10

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


คุณช่วยอธิบายคำถามของคุณสักเล็กน้อยได้ไหม? จำนวนตัวประมวลผลคงที่เล็กน้อย -> ที่ดีที่สุดคุณสามารถปรับปรุงเวลาใช้งานโดยปัจจัยคงที่ ฉันเดาว่านี่ไม่ใช่สิ่งที่คุณหมายถึง?
Jukka Suomela

"ไม่สัมพันธ์กับขนาดอินพุต" คุณหมายความว่ายังไงกันแน่? O (1)
Aryabhata

ฉันหมายถึงโปรเซสเซอร์ O (1) @ Jukka: นั่นคือสิ่งที่ฉันหมายถึงสามารถลดความซับซ้อนในการคำนวณได้โดยการเพิ่มจำนวนโปรเซสเซอร์ที่เกี่ยวข้องกับขนาดอินพุตเท่านั้น
Nick Larsen

คำตอบ:


12

หากคุณหมายถึงตัวประมวลผล O (1) ดังนั้นไม่ความซับซ้อนในการคำนวณจะไม่สามารถลดลงได้

เพียงเรียงลำดับงานที่ทำโดยโปรเซสเซอร์แต่ละตัวและทำเพียงอันเดียว หากคุณกังวลเกี่ยวกับการซิงโครไนซ์ตัวประมวลผลเดียวสามารถเลียนแบบได้อย่างง่ายดาย


ขอบคุณสำหรับคำตอบที่รวดเร็ว หากไม่มีการสร้างคำถามอื่นสำหรับสิ่งที่เกี่ยวข้องอย่างใกล้ชิดเป็นไปได้หรือไม่ที่จะลดความซับซ้อนในการคำนวณโดยใช้โปรเซสเซอร์จำนวนหนึ่งเทียบกับขนาดอื่น ๆ
Nick Larsen

2
@Nick: สิ่งอื่นที่ไม่ใช่ขนาดอินพุตคือ O (1) :-)
Aryabhata

ขอบคุณฉันมีปัญหาในการคิดสิ่งอื่น แต่ฉันต้องการให้แน่ใจ
Nick Larsen

WRT ไม่ว่าคุณจะสามารถเร่งความเร็วด้วยจำนวนโปรเซสเซอร์ที่เพิ่มขึ้นด้วยปริมาณอื่นนอกเหนือจากขนาดอินพุตฉันไม่แน่ใจว่าคำตอบคือ 'ไม่' มีปัญหาที่ความซับซ้อนเพิ่มขึ้นพร้อมพารามิเตอร์บางตัวที่แตกต่างกัน (แม้ว่าจะไม่ชัดเจน) ขนาดอินพุต จะเกิดอะไรขึ้นถ้ามีปัญหาเกี่ยวกับกราฟฉันได้อนุญาตให้คุณมีตัวประมวลผลจำนวนหนึ่งที่เกี่ยวข้องกับความกว้างแผนภูมิต้นไม้เช่นกัน
Aaron Roth

@Aaron: ถ้าจำนวนตัวประมวลผลที่ได้รับอนุญาตเกี่ยวข้องกับอินพุตอย่างใดอย่างนั้นใช่เราไม่สามารถพูดว่า "ไม่" แน่นอน แน่นอนเว้นเสียแต่ว่าเราจะเจาะจงเป็นคำถามที่ไร้ความหมาย
Aryabhata

6

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

จุดเริ่มต้นที่ดีคือ google สำหรับ "การซิงโครนัสแบบขนาน"


ระดับความซับซ้อนสามารถเปลี่ยนแปลงได้หรือไม่ถ้าคุณยอมให้ฮาร์ดแวร์ขยายขนาดด้วยข้อมูลอินพุต? ฉันมีปัญหา to google ที่เป็นคนธรรมดา: /
เกรินุก

3

คุณอาจสนใจในเอกสารนี้:

ประสิทธิภาพแบบ Superlinear ในการคำนวณแบบขนานตามเวลาจริงโดย Selim Akl

เขาให้ตัวอย่างของปัญหาการคำนวณที่ "การแก้ปัญหาตามลำดับช้ากว่าครั้งมากกว่าการแก้ปัญหาแบบขนานของโปรเซสเซอร์n "; สิ่งนี้ทำได้โดยการตีความแนวคิดของ "ปัญหาการคำนวณ" อย่างสร้างสรรค์nn


1

หากคุณกระจายงานไปยังตัวประมวลผล (โดยที่pเป็นค่าคงที่)พีพี

จากนั้นอาจจะมีความซับซ้อนที่= 1 / PO((n)/พี)O((1/พี)(n))O((n))O((n))=1/พี

TT/พี+Sโอม.อีMโอRอีTผมม.อี

แต่ไม่มีการเปลี่ยนแปลงที่ซับซ้อน


1

"คุณไม่สามารถคำนวณด้วยโปรเซสเซอร์ 1 ตัว แต่สามารถคำนวณด้วย 2"

นี่เป็นไปไม่ได้สมมติว่าโปรเซสเซอร์ทั้งสองเป็น TM หรือรุ่นที่มีประสิทธิภาพน้อยกว่า จากวิกิพีเดียสำหรับเครื่องมัลติเทป:

แบบจำลองนี้ดูมีพลังมากกว่ารุ่นเทปเดี่ยว แต่เครื่องมัลติเทปใด ๆ ไม่ว่าตัว k มีขนาดใหญ่แค่ไหนสามารถจำลองด้วยเครื่องเทปเดี่ยวโดยใช้เวลาในการคำนวณเพียงสองเท่า (Papadimitriou 1994, Thrm 2.1)

นอกจากนี้สำหรับเครื่องหลายหัวจาก "การจำลองเวลาเชิงเส้นของเครื่องทัวริงแบบหลายหัวพร้อมการกระโดดแบบตัวต่อหัว" โดย Walter J. Savitch และ Paul MB Vitányi:

ผลลัพธ์หลักของบทความนี้แสดงให้เห็นว่าเนื่องจากเครื่องทัวริงมีหัวอ่าน - เขียนหลายต่อเทปและซึ่งมีการดำเนินการเลื่อนการย้ายหนึ่งครั้งเพิ่มเติม "เลื่อนหัวที่กำหนดไปยังตำแหน่งของหัวอื่น ๆ ที่ได้รับ" หนึ่งสามารถสร้าง เครื่องมัลติทัวริงกับหัวอ่านเขียนเดียวต่อเทปซึ่งจำลองในเวลาเชิงเส้น เช่นถ้าเครื่องดั้งเดิมทำงานในเวลา T (n) จากนั้นเครื่องจำลองจะทำงานในเวลา cT (n) สำหรับค่าคงที่บางส่วน


ที่นี่เรามีตัวอย่างที่ดีสำหรับค่าใช้จ่ายของนามธรรม คอมพิวเตอร์จริง (เนื่องจากการใช้งานของ RM) สามารถขนานได้ดีกว่า TM
Raphael

RM หมายถึงอะไร ถ้านั่นเป็นความผิดพลาดและคุณหมายถึง TM ฉันไม่เห็นด้วย Multitape / multihead TM ไม่ต้องกังวลกับการสื่อสารของโปรเซสเซอร์และกฎหมายของ Amdahl นอกจากนี้ฉันไม่เห็นว่าคอมพิวเตอร์สามารถทำงานได้ดีกว่าการเข้าถึง TM แบบสุ่มและในทางกลับกันฉันเชื่อว่าพวกเขาเทียบเท่า
chazisop

0

บางที "ขนานหรือ" (ให้ทั้งสองฟังก์ชั่นคืนบูลีนบอกว่าหนึ่งในนั้นคืนค่าจริงเนื่องจากว่ามีสิ่งใดสิ่งหนึ่ง แต่ไม่ใช่ทั้งสองอย่างอาจล้มเหลวในการยกเลิก) อาจเป็นสิ่งที่คุณกำลังพูดถึง: คุณไม่สามารถคำนวณได้ มันมีโปรเซสเซอร์ 1 ตัว แต่สามารถคำนวณได้ด้วย 2

อย่างไรก็ตามสิ่งนี้ขึ้นอยู่กับโมเดลการคำนวณที่คุณจะใช้ไม่ว่าคุณจะได้รับกระบวนการเป็นกล่องดำหรือเป็นคำอธิบายที่คุณสามารถตีความตัวเองเป็นต้น


2
สิ่งนี้ดูเหมือนว่าผิดเว้นแต่คุณจะทำงานในรูปแบบที่ จำกัด อย่างรุนแรง โปรเซสเซอร์เดียวสามารถแทรกคำสั่งที่จะรันบน 2 ทำให้เกิดการชะลอตัว 2x + O (1) มากที่สุด ฉันเดาว่า `` กล่องดำ '' หมายความว่าการแทรกสอดเป็นไปไม่ได้เหรอ? ถึงแม้ว่าถ้าคุณอาจยุติการคำนวณกล่องดำที่ใช้เวลานานเกินไปคุณยังสามารถจำลองโปรเซสเซอร์สองตัวได้โดยการเดาซ้ำแล้วซ้ำอีกและเพิ่มความยาวการคำนวณที่ต้องการเป็นสองเท่าสำหรับแต่ละกระบวนการ
Aaron Roth

แต่ในทางกลับกันเราต้องการให้สามารถยุติการคำนวณได้ ฉันหมายความว่าคุณไม่สามารถทำแบบขนานหรือบน 1 โพรเซสเซอร์ในรูปแบบที่สิ่งเดียวที่คุณทำได้คือรันการคำนวณจนกว่ามันจะเสร็จสิ้น
jkff

ตอนนี้ฉันเข้าใจสิ่งที่คุณหมายถึง แต่ฉันเชื่อว่ามันไม่สมบูรณ์ คุณไม่สามารถคำนวณด้วย 2 ได้ หากเครื่องหนึ่งทำงานต่อไปและคำตอบอื่น ๆ ใช่คำตอบคือใช่ แต่ถ้ามันคืนค่า NO คุณไม่สามารถตอบได้อย่างเด็ดขาดเพราะคุณไม่รู้ว่าเครื่องที่ยังทำงานอยู่หรือติดอยู่ (เช่นปัญหาการหยุดทำงาน)
chazisop
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.