วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

1
การแสดงออกปกติด้วย backreferences มากกว่าตัวอักษรเอก
การตั้งค่า: นิพจน์ปกติที่มีการอ้างอิงย้อนกลับ ภาษาเดียว (ตัวอักษรสัญลักษณ์ 1 ตัว) ปัญหาต่อไปนี้สามารถแก้ไขได้ในการตั้งค่านี้: ได้รับการแสดงออกปกติด้วย backreferences มันกำหนดภาษาปกติหรือไม่ ตัวอย่างเช่น(aa+)\1กำหนดภาษาปกติโดยที่(aa+)\1+ไม่ทำเช่นนั้น เราสามารถตัดสินใจได้ว่าจะใช้กรณีใด สำหรับ concreteness "นิพจน์ทั่วไปที่มีการอ้างอิงย้อนกลับ" ที่นี่อ้างถึงเช่นชุดย่อยต่อไปนี้ของนิพจน์ปกติที่เข้ากันได้กับ Perl ปกติ : aจับคู่อักขระa( อักขระเพียงตัวเดียวในตัวอักษร) X* ตรงกับ 0 หรือมากกว่าที่เกิดขึ้นของ X X|Yจับคู่XหรือY วงเล็บสามารถใช้สำหรับการจัดกลุ่มและการจับภาพ \1. \2และอื่น ๆ จับคู่สตริงเดียวกันกับวงเล็บคู่ที่ 1, 2 และอื่น ๆ นอกจากนี้เรายังสามารถใช้ shorthands ปกติเช่น=X+XX*

3
ทำไมไม่มีอัลกอริธึมประมาณสำหรับ SAT และปัญหาการตัดสินใจอื่น ๆ
ฉันมีปัญหาในการตัดสินใจ NP-complete จากตัวอย่างของปัญหาฉันต้องการออกแบบอัลกอริทึมที่ให้ผลลัพธ์ YES ถ้าปัญหาเป็นไปได้และไม่เช่นนั้น (แน่นอนว่าหากอัลกอริทึมไม่เหมาะสมจะทำให้เกิดข้อผิดพลาด) ฉันไม่พบอัลกอริทึมการประมาณค่าใด ๆ สำหรับปัญหาดังกล่าว ฉันกำลังมองหา SAT โดยเฉพาะและฉันพบในหน้า Wikipedia เกี่ยวกับอัลกอริทึมการประมาณค่าต่อไปนี้: ข้อ จำกัด อีกประการของวิธีการคือใช้กับปัญหาการปรับให้เหมาะสมเท่านั้นและไม่ใช่ปัญหาการตัดสินใจที่ "บริสุทธิ์" อย่างพอใจ . ยกตัวอย่างเช่นทำไมเราไม่กำหนดอัตราส่วนการประมาณให้เป็นสัดส่วนกับจำนวนข้อผิดพลาดที่อัลกอริทึมทำ เราจะแก้ปัญหาการตัดสินใจอย่างแท้จริงได้อย่างไรด้วยความโลภและวิธีย่อยที่เหมาะสมที่สุด?

1
ความแตกต่างระหว่างชนิดที่อ้างอิง, ประเภทการปรับแต่งและ Hoare Logic
ฉันรู้ทฤษฎีประเภทพึ่งพาน้อย จากวิกิพีเดีย: ชนิดที่ขึ้นต่อกันคือชนิดที่คำจำกัดความขึ้นอยู่กับค่า และจากหลักสูตรทฤษฎีของฉันฉันจำได้ว่าประเภทที่พึ่งพาคือ: ตระกูลของชนิดที่จัดทำดัชนีตามประเภท แต่ฉันมีความสับสนเกี่ยวกับประเภทพึ่งพาและประเภทการปรับแต่งและตรรกะ hoare เนื่องจากจากประเภทDepeneent vs Refinement ประเภทการปรับแต่งดูเหมือนว่าตรรกะของ Hoare มีประเภทการปรับแต่งพลังงานเพิ่มเติมอะไรอีกนอกเหนือจากการอนุญาตให้แจ้งล่วงหน้าว่าจะต้องได้รับความพึงพอใจ (ซึ่งคล้ายกับ Hoare Logic) มีอะไรเพิ่มเติมที่ประเภทการพึ่งพาให้เปรียบเทียบกับประเภทการปรับแต่ง และประเภท Dependent นั้นมีประสิทธิภาพมากกว่าประเภทการปรับแต่ง + ตัวแก้ Sat / Constraint ทุกคนสามารถล้างอากาศด้วยตัวอย่าง

2
ทฤษฎีประเภทสัญชาตญาณ "น้อยที่สุด"?
ฉันประหลาดใจที่ผู้คนเพิ่มประเภทใหม่ ๆ ในทฤษฎีประเภท แต่ไม่มีใครพูดถึงทฤษฎีขั้นต่ำสุด (หรือฉันไม่สามารถหามันได้) ฉันคิดว่านักคณิตศาสตร์ชอบสิ่งที่น้อยที่สุดใช่ไหม? ถ้าฉันเข้าใจอย่างถูกต้องในทฤษฎีประเภทที่มีการคาดคะเนProp, λ-abstraction และΠ-types เพียงพอ โดยการพูดอย่างพอเพียงฉันหมายความว่ามันสามารถใช้เป็นตรรกะปรีชาญาณ ประเภทอื่น ๆ สามารถกำหนดได้ดังต่อไปนี้: ⊥=defΠα:Prop.α¬A=defA→⊥A∧B=defΠC:Prop.(A→B→C)→CA∨B=defΠC:Prop.(A→C)→(B→C)→C∃x:S(P(x))=defΠα:Prop.(Πx:S.Px→α)→α⊥=defΠα:Prop.α¬A=defA→⊥A∧B=defΠC:Prop.(A→B→C)→CA∨B=defΠC:Proพี.(A→ค)→(B→ค)→ค∃x:S(P(x))=dอีฉΠα:PRโอพี.(Πx:S.Px→α)→α \bot \stackrel{def}{=} \Pi \alpha: Prop. \alpha \\ \neg A \stackrel{def}{=} A \to \bot \\ A \land B \stackrel{def}{=} \Pi C: Prop. (A \to B \to C) \to C \\ A \lor B \stackrel{def}{=} \Pi C: …

7
แคลคูลัสแลมบ์ดาดูเหมือนไม่เป็นนามธรรม และฉันไม่เห็นจุดของมัน
คำถามพื้นฐาน: อะไรแคลคูลัสแลมบ์ดาทำเพื่อเราว่าเราไม่สามารถทำอะไรกับคุณสมบัติฟังก์ชั่นพื้นฐานและสัญกรณ์เรียนรู้โดยทั่วไปในพีชคณิตโรงเรียนมัธยม? ก่อนอื่นสิ่งที่เป็นนามธรรมหมายถึงอะไรในบริบทของแคลคูลัสแลมบ์ดา? ความเข้าใจของฉันเกี่ยวกับคำว่า abstract เป็นสิ่งที่หย่าร้างจากเครื่องจักรซึ่งเป็นแนวคิดสรุปของแนวคิด อย่างไรก็ตามแลมบ์ดาฟังก์ชั่นโดยทำไปกับชื่อฟังก์ชั่นป้องกันระดับที่เป็นนามธรรม ตัวอย่างเช่น: f(x) = x + 2 h(x, y) = x + 5 y แต่ถึงแม้จะไม่ได้กำหนดกลไกของฟังก์ชั่นเหล่านี้เราก็สามารถพูดคุยเกี่ยวกับองค์ประกอบของมันได้อย่างง่ายดาย ตัวอย่างเช่น: 1. h(x, y) . f(x) . f(x) . h(x, y) or 2. h . f . f . h เราสามารถรวมข้อโต้แย้งหากเราต้องการหรือเราสามารถสรุปได้อย่างสมบูรณ์เพื่อให้ภาพรวมของสิ่งที่เกิดขึ้น และเราสามารถลดพวกมันอย่างรวดเร็วให้เป็นฟังก์ชันเดียว ลองดูองค์ประกอบที่ 2 ฉันสามารถมีรายละเอียดของชั้นนักเรียนที่ฉันสามารถเขียนได้โดยขึ้นอยู่กับความสำคัญของฉัน: g = h . …

5
การใช้ "ต้นไม้" เร็วที่สุดในวิทยาการคอมพิวเตอร์คืออะไร?
ฉันมีคำถามประวัติเล็กน้อยคือตามที่ชื่อบอกว่าฉันกำลังมองหาการใช้ต้นไม้ในช่วงต้น (เช่นโครงสร้างข้อมูลต้นไม้ค้นหาอะไรก็ตาม) ในสาขาวิทยาศาสตร์คอมพิวเตอร์

7
คอมพิวเตอร์ที่ไม่มี RAM แต่มีดิสก์เท่ากับคอมพิวเตอร์ที่มี RAM หรือไม่
หน่วยความจำใช้สำหรับหลาย ๆ อย่างที่ฉันเข้าใจ มันทำหน้าที่เป็นดิสก์แคชและมีคำแนะนำโปรแกรมและสแต็คและกอง นี่คือการทดสอบความคิด ถ้าไม่มีใครสนใจความเร็วหรือเวลาที่คอมพิวเตอร์ใช้ในการทำกระทืบอะไรคือจำนวนหน่วยความจำขั้นต่ำสุดที่สามารถมีได้ถ้าสมมติว่ามีดิสก์ขนาดใหญ่มาก? เป็นไปได้ไหมที่จะใช้หน่วยความจำและมีเพียงดิสก์? ไม่จำเป็นต้องใช้การแคชดิสก์ ถ้าเราตั้งค่าพื้นที่สว็อปบนดิสก์สแต็กของโปรแกรมและฮีปก็ไม่จำเป็นต้องใช้หน่วยความจำ มีอะไรที่ต้องใช้หน่วยความจำที่จะนำเสนอ?

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

4
'Eugene Goostman' ผ่านการทดสอบทัวริงจริงหรือไม่
มีการกล่าวกันว่า 'Eugene Goostman' โปรแกรมคอมพิวเตอร์ที่พัฒนาขึ้นเพื่อจำลองเด็กชายอายุ 13 ปีพยายามโน้มน้าวผู้พิพากษาร้อยละ 33 ว่าเป็นมนุษย์และผ่านการทดสอบทัวริง โปรแกรมคอมพิวเตอร์หรือที่รู้จักกันในชื่อ chatbot ถูกแกล้งทำเป็นเด็กชายชาวยูเครนอายุ 13 ปีซึ่งภาษาอังกฤษเป็นภาษาที่สองซึ่งมีความแตกต่างกันมาก สำหรับฉันแล้ว Eugene ฟังดูเหมือน chatbot ธรรมดา ๆ ควร: ซ้ำซากไร้สาระและเกลื่อนไปด้วยผู้ไม่เสแสร้ง ฉันไม่รู้ว่ามันทำให้ผู้พิพากษาตัดสินอย่างไร (ซึ่งดูไม่เป็นมืออาชีพ) หลายคนวิพากษ์วิจารณ์ยูจีนเหมือนศาสตราจารย์ Stevan Harnad ที่กล่าวว่า "มันไร้สาระ" และ "เราไม่ได้ผ่านการทดสอบของทัวริง ความคิดเห็นที่แตกต่างกัน แต่ฉันอยากจะรู้ว่ามันผ่านการทดสอบอย่างเป็นทางการ? มันก็ถูกกล่าวว่า: สองรางวัลแบบครั้งเดียวเท่านั้นที่ไม่เคยได้รับ 25K นั้นถูกนำเสนอสำหรับผู้พูดคุยคนแรกที่ผู้พิพากษาไม่สามารถแยกความแตกต่างจากมนุษย์จริงและสามารถโน้มน้าวผู้พิพากษาว่ามนุษย์เป็นโปรแกรมคอมพิวเตอร์ $ 100,000 เป็นรางวัลสำหรับนักแชตบ็อตคนแรกที่ผู้พิพากษาไม่สามารถแยกความแตกต่างจากมนุษย์จริงในการทดสอบทัวริงซึ่งรวมถึงการถอดรหัสและการทำความเข้าใจข้อความภาพและการรับฟัง การแข่งขันประจำปีจะสิ้นสุดลง หมายความว่ายูจีนได้รับรางวัล $ 25,000 หรือไม่?

4
เหตุใด Quickized Quicksort จึงมีค่าใช้จ่ายรันไทม์ที่แย่ที่สุดในกรณี O (n log n)
การจัดเรียงแบบด่วนแบบสุ่มเป็นส่วนขยายของการเรียงแบบด่วนซึ่งองค์ประกอบของเดือยจะถูกเลือกแบบสุ่ม สิ่งที่สามารถซับซ้อนเวลากรณีที่เลวร้ายที่สุดของอัลกอริทึมนี้ ตามที่ผมมันควรจะเป็นO(n2)O(n2)O(n^2)เป็นกรณีที่เลวร้ายที่สุดที่เกิดขึ้นเมื่อหมุนสุ่มเลือกถูกเลือกในเรียงหรือเรียงย้อนกลับการสั่งซื้อ แต่ในบางตำรา [1] [2]ความซับซ้อนของเวลากรณีที่เลวร้ายที่สุดถูกเขียนเป็นO(nlogn)O(nlog⁡n)O(n\log{n}) ถูกต้องอะไร

4
การกำหนดปัญหาการหยุดทำงานสำหรับออโตมาต้าที่ไม่สามารถกำหนดค่าได้
คำจำกัดความหลักของ Turing machine (TM) อย่างน้อยในหนังสืออ้างอิงของฉันเอง (Hopcroft + Ullman 1979) นั้นถูกกำหนดไว้แล้ว ดังนั้นความเข้าใจของฉันเองเกี่ยวกับปัญหาการหยุดชะงักเป็นหลักสำหรับการกำหนด TM แต่ฉันตระหนักว่ามันอาจได้รับการพิจารณาสำหรับออโตมาตาชนิดอื่น ฉันยังสังเกตเห็นว่าการกำหนดระดับนั้นมักจะมากหรือน้อยโดยนัยในวิธีที่ผู้คนมักอ้างถึง TM หรือปัญหาการหยุดชะงัก หน้าวิกิพีเดียเกี่ยวกับปัญหาการหยุดชะงักเป็นตัวอย่างที่ดีของสิ่งนั้น แต่ดูเหมือนไม่มีเหตุผลสำหรับข้อ จำกัด ดังกล่าว ให้ครอบครัว ของออโตมาตะที่ไม่สามารถกำหนดได้ - ปัญหาการหยุดชะงักของอาจถูกกำหนดเป็น:ฉFF\mathcal FFF\mathcal F มีขั้นตอนการตัดสินใจที่เหมือนกันหรือไม่เนื่องจากมีหุ่นยนต์และอินพุตจะสามารถตัดสินใจได้ว่ามีการคำนวณการหยุดชะงักของบนอินพุตหรือไม่ x A xA∈FA∈FA\in\mathcal FxxxAAAxxx (นี่ไม่เหมือนกับการบอกว่าการคำนวณของกับอินพุตจะสิ้นสุดลง)xAAAxxx ที่จริงแล้วดูเหมือนเป็นวิธีเดียวที่จะให้ความรู้สึกถึงการอภิปรายเกี่ยวกับปัญหาการหยุดชะงักสำหรับLinear Bounded Automata (LBA) ซึ่งส่วนใหญ่ไม่ใช่ออโตมาตา ดังนั้นคำถามของฉันคือว่าฉันถูกต้องหรือไม่และมีเหตุผล (และเหตุผลใด) สำหรับการรักษาระดับที่สองนี้ที่เห็นได้ชัดของปัญหาการหยุดชะงักสำหรับออโตมาตาแบบไม่ขึ้นรูป

2
อัลกอริทึมที่มีประสิทธิภาพสำหรับปัญหาการมองเห็นในแนวตั้ง
ในระหว่างที่คิดถึงปัญหาหนึ่งฉันรู้ว่าฉันต้องสร้างอัลกอริทึมที่มีประสิทธิภาพในการแก้ไขงานต่อไปนี้: ปัญหา:เราได้รับกล่องสี่เหลี่ยมสองมิติของด้านซึ่งด้านขนานกับแกน เราสามารถตรวจสอบมันผ่านด้านบน อย่างไรก็ตามยังมีส่วนแนวนอนแต่ละเซกเมนต์มีจำนวนเต็ม -coordinate ( ) และ -coordinates ( ) และเชื่อมต่อจุดและ (ดูที่ ภาพด้านล่าง)nnnmmmyyy0≤y≤n0≤y≤n0 \le y \le nxxx0≤x1&lt;x2≤n0≤x1&lt;x2≤n0 \le x_1 < x_2 \le n(x1,y)(x1,y)(x_1,y)(x2,y)(x2,y)(x_2,y) เราอยากทราบว่าแต่ละเซ็กเมนต์ที่ด้านบนของกล่องเราจะมองลึกเข้าไปในแนวตั้งได้อย่างไรถ้ามองผ่านเซ็กเมนต์นี้ อย่างเป็นทางการสำหรับx∈{0,…,n−1}x∈{0,…,n−1}x \in \{0,\dots,n-1\}เราต้องการหาmaxi: [x,x+1]⊆[x1,i,x2,i]yimaxi: [x,x+1]⊆[x1,i,x2,i]yi\max_{i:\ [x,x+1]\subseteq[x_{1,i},x_{2,i}]} y_iy_i ตัวอย่าง: รับn=9n=9n=9และm=7m=7m=7กลุ่มตั้งอยู่ในภาพด้านล่างผลที่ได้คือ(5,5,5,3,8,3,7,8,7)(5,5,5,3,8,3,7,8,7)(5, 5, 5, 3, 8, 3, 7, 8, 7)7) ดูว่าแสงที่ลึกสามารถเข้าไปในกล่องได้ โชคดีสำหรับเราทั้งnnnและmmmมีขนาดค่อนข้างเล็กและเราสามารถทำการคำนวณแบบออฟไลน์ได้ อัลกอริธึมที่ง่ายที่สุดในการแก้ปัญหานี้คือแรงเดรัจฉาน: สำหรับแต่ละเซกเมนต์เคลื่อนที่อาร์เรย์ทั้งหมดและอัพเดตในกรณีที่จำเป็น แต่ก็จะช่วยให้เราไม่ได้น่าประทับใจมากO(mn)O(mn)O(mn)(ล้านบาท) การปรับปรุงที่ดีมากคือการใช้แผนภูมิส่วนซึ่งสามารถเพิ่มค่าสูงสุดในส่วนในระหว่างการค้นหาและอ่านค่าสุดท้าย ผมจะไม่อธิบายมันต่อไป แต่เราจะเห็นว่าเวลาซับซ้อนคือn)O((m+n)logn)O((m+n)log⁡n)O((m+n) …

3
อัลกอริทึมเพื่อทดสอบว่าภาษานั้นไม่มีบริบทหรือไม่
มีอัลกอริทึม / กระบวนงานที่เป็นระบบเพื่อทดสอบว่าภาษานั้นไม่มีบริบทหรือไม่? กล่าวอีกนัยหนึ่งระบุภาษาที่ระบุในรูปแบบพีชคณิต (คิดว่าบางอย่างเช่นL = { anขnan: n ∈ N }L={anขnan:n∈ยังไม่มีข้อความ}L=\{a^n b^n a^n : n \in \mathbb{N}\} ) ทดสอบว่าภาษานั้นไม่มีบริบทหรือไม่ ลองนึกภาพเรากำลังเขียนบริการเว็บเพื่อช่วยนักเรียนทำการบ้านทั้งหมด คุณระบุภาษาและบริการเว็บเอาท์พุท "ไม่มีบริบท" หรือ "ไม่ใช่บริบท" มีวิธีการที่ดีในการทำสิ่งนี้โดยอัตโนมัติหรือไม่? มีเทคนิคการเรียนการสอนสำหรับการพิสูจน์ด้วยตนเองเช่นแทรกสูบน้ำแทรกอ็อกเดน, Parikh แทรกการแลกเปลี่ยนแทรกและเพิ่มเติมได้ที่นี่ อย่างไรก็ตามพวกเขาแต่ละคนต้องการข้อมูลเชิงลึกด้วยตนเองในบางจุดดังนั้นจึงไม่ชัดเจนว่าจะทำให้พวกเขากลายเป็นสิ่งที่เป็นอัลกอริทึมได้อย่างไร ฉันเห็นKaveh เขียนที่อื่นว่าชุดของภาษาที่ไม่มีบริบทไม่นับซ้ำได้ดังนั้นจึงไม่มีความหวังสำหรับอัลกอริธึมที่จะทำงานกับภาษาที่เป็นไปได้ทั้งหมด ดังนั้นฉันคิดว่าบริการเว็บจะต้องสามารถส่งออก "บริบทฟรี", "ไม่ใช่บริบทฟรี" หรือ "ฉันไม่สามารถบอกได้" มีอัลกอริทึมใดบ้างที่มักจะสามารถให้คำตอบนอกเหนือจาก "ฉันบอกไม่ได้" ในหลาย ๆ ภาษาที่มีแนวโน้มที่จะเห็นในตำราเรียน? คุณจะสร้างบริการเว็บดังกล่าวได้อย่างไร ในการทำให้คำถามนี้ถูกต้องเราจำเป็นต้องตัดสินใจว่าผู้ใช้จะระบุภาษาอย่างไร ฉันเปิดรับข้อเสนอแนะ แต่ฉันกำลังคิดแบบนี้: L = { E: …

1
การตัดกิโยตินกับการตัดทั่วไป
ปัญหาการตัดคือปัญหาที่ควรตัดวัตถุขนาดใหญ่บางชิ้นเป็นชิ้นเล็ก ๆ ตัวอย่างเช่นสมมติว่าคุณมีโรงงานที่ทำงานร่วมกับแผ่นใหญ่แก้วดิบของความกว้างและระยะเวลาในLมีผู้ซื้อหลายรายแต่ละรายต้องการแผ่นกระจกขนาดเล็กจำนวนมาก ผู้ซื้อต้องการแผ่นความยาวและความกว้างw_iเป้าหมายของคุณคือการตัดแผ่นเล็ก ๆ จากแผ่นใหญ่ให้มีการใช้งานอย่างเต็มประสิทธิภาพและลดของเสียให้เหลือน้อยที่สุด (นอกจากนี้ยังมีปัญหาการตัดและการบรรจุประเภทอื่นด้วย )WWWLLLผมผมiล.ผมล.ผมl_iWผมWผมw_i ข้อ จำกัด ทั่วไปอย่างหนึ่งของปัญหาการตัดคือการตัดต้องใช้การตัดกิโยตินนั่นคือแต่ละสี่เหลี่ยมที่มีอยู่สามารถตัดได้เพียงสองสี่เหลี่ยมเล็ก ๆ เท่านั้น มันเป็นไปไม่ได้ที่จะสร้างรูปตัว L และอื่น ๆ เห็นได้ชัดว่าพื้นที่ใช้งานสูงสุดที่มีการตัดกิโยตินอาจเล็กกว่าพื้นที่ใช้งานสูงสุดโดยไม่มีข้อ จำกัด คำถามของฉันคือ: มีขอบเขตบนและล่างในอัตราส่วนระหว่างการตัดกิโยตินที่ดีที่สุดและการตัดทั่วไปที่ดีที่สุดหรือไม่? งานที่เกี่ยวข้อง: Song et al. (2009)อธิบายขั้นตอนวิธีการที่ใช้เป็นชนิดที่มีข้อ จำกัด ของการตัดกระดาษ - การตัดกระดาษละสองครั้ง พวกเขาพิสูจน์โดยใช้ข้อ จำกัด ทางเรขาคณิตที่อัตราส่วนระหว่างสูงสุดตัดกระดาษละสองครั้งเพื่อตัดกระดาษสูงสุดที่มีขอบเขตโดย{7} ฉันกำลังมองหาผลลัพธ์ที่เปรียบเทียบได้เกี่ยวกับอัตราส่วนระหว่างการตัดกิโยตินสูงสุดต่อการตัดทั่วไปสูงสุด6767\frac{6}{7}

3
การอ่านแบบสุ่มที่ขนานกันดูเหมือนว่าจะทำงานได้ดี - เพราะอะไร
พิจารณาโปรแกรมคอมพิวเตอร์ที่ง่ายมากต่อไปนี้: for i = 1 to n: y[i] = x[p[i]] นี่คือและคืออาร์เรย์ -element ของไบต์และคืออาร์เรย์ของคำศัพท์ -element ที่นี่มีขนาดใหญ่เช่น (เพื่อให้มีเพียงเศษเสี้ยวเล็กน้อยของข้อมูลที่พอดีกับหน่วยความจำแคชทุกประเภท)xxxYYynnnพีพีpnnnnnnn = 2วันที่ 31n=2วันที่ 31n = 2^{31} สมมติว่าประกอบด้วยตัวเลขสุ่มกระจายสม่ำเสมอระหว่างและnพีพีp111nnn จากมุมมองของฮาร์ดแวร์สมัยใหม่สิ่งนี้ควรหมายถึงสิ่งต่อไปนี้: การอ่านราคาถูก (การอ่านตามลำดับ)p [ i ]พี[ผม]p[i] การอ่านมีราคาแพงมาก (การอ่านแบบสุ่ม; การอ่านเกือบทั้งหมดเป็นแคชที่หายไป; เราจะต้องดึงข้อมูลแต่ละไบต์จากหน่วยความจำหลัก)x [ p [ i ] ]x[พี[ผม]]x[p[i]] การเขียนนั้นถูก (การเขียนตามลำดับ)Y[ i ]Y[ผม]y[i] และนี่คือสิ่งที่ฉันสังเกต โปรแกรมช้ามากเมื่อเปรียบเทียบกับโปรแกรมที่อ่านและเขียนตามลำดับเท่านั้น ยิ่งใหญ่ มาถึงคำถาม: โปรแกรมนี้ขนานกับแพลตฟอร์มมัลติคอร์ที่ทันสมัยได้อย่างไร สมมติฐานของฉันคือว่าโปรแกรมนี้ไม่ขนานกัน ท้ายที่สุดคอขวดคือหน่วยความจำหลัก …

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