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

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

3
อัลกอริทึมเพื่อทดสอบว่าต้นไม้ไบนารีเป็นต้นไม้ค้นหาและนับสาขาเสร็จสมบูรณ์หรือไม่
ฉันต้องสร้างอัลกอริทึมแบบเรียกซ้ำเพื่อดูว่าต้นไม้ไบนารีเป็นต้นไม้ค้นหาแบบไบนารีรวมทั้งนับจำนวนสาขาที่สมบูรณ์ (โหนดแม่ที่มีโหนดลูกทั้งซ้ายและขวา) พร้อมตัวแปรการนับทั่วโลก นี่คือการมอบหมายสำหรับคลาสโครงสร้างข้อมูลของฉัน จนถึงตอนนี้ฉันมี void BST(tree T) { if (T == null) return if ( T.left and T.right) { if (T.left.data < T.data or T.right.data > T.data) { count = count + 1 BST(T.left) BST(T.right) } } } แต่ฉันไม่สามารถหาอันนี้ได้ ฉันรู้ว่าอัลกอริทึมนี้จะไม่แก้ปัญหาเพราะการนับจะเป็นศูนย์ถ้าที่สองถ้าคำสั่งไม่เป็นความจริง ใครช่วยฉันออกจากนี้

3
ปัญหา NP ทั้งหมดลดลงเป็นปัญหาที่ทำให้เสร็จสมบูรณ์: ดังนั้นปัญหา NP จะไม่สมบูรณ์อย่างไร
หนังสือของฉันระบุสิ่งนี้ หากปัญหาการตัดสินใจอยู่ใน P และ A ลดลงเหลือ B ปัญหาการตัดสินใจอยู่ใน P ปัญหาการตัดสินใจ B คือ NP-complete ถ้า B อยู่ใน NP และสำหรับทุกปัญหาใน A ใน NP, A ลดลงเป็น B ปัญหาการตัดสินใจ C คือ NP-complete ถ้า C อยู่ใน NP และสำหรับปัญหา NP-complete B, B จะลดเป็น C ดังนั้นคำถามของฉันคือ หาก B หรือ C อยู่ใน NP-complete และปัญหาทั้งหมดใน NP ลดลงเป็นปัญหาที่ทำให้เสร็จสมบูรณ์โดยใช้กฎข้อแรกปัญหา NP ใดที่จะไม่สมบูรณ์ …

1
การเขียนคำใหม่ คำนวณคู่ที่สำคัญ
ฉันพยายามที่จะแก้ปัญหาการออกกำลังกายต่อไปนี้ แต่ฉันก็ติดในขณะที่พยายามหาคู่ที่สำคัญทั้งหมด ฉันมีคำถามต่อไปนี้: ฉันจะรู้ได้อย่างไรว่าคู่วิกฤตินั้นสร้างกฎใหม่ ฉันจะรู้ได้อย่างไรว่าฉันพบคู่ที่สำคัญทั้งหมดแล้ว ปล่อย Σ={∘,i,e}Σ={∘,i,e}\Sigma= \left \{ \circ, i, e \right \} ที่ไหน ∘∘\circ เป็นไบนารี iii เป็นเอกภาพและ eee เป็นค่าคงที่ E=⎧⎩⎨⎪⎪(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e⎫⎭⎬⎪⎪E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e} E=\left \{ \begin{gather} ( x \circ y ) \circ z \approx x \circ\left ( y \circ z \right ) \\ x \circ e \approx x \\ x \circ …

3
สัญชาตญาณที่อยู่เบื้องหลังค่าลักษณะเฉพาะของเมทริกซ์ adjacency
ขณะนี้ฉันกำลังทำงานเพื่อทำความเข้าใจการใช้งานCheegerและความไม่เท่าเทียมของ Cheeger และการใช้งานสำหรับการแบ่งสเปกตรัมการดำเนินการการขยายตัว ฯลฯ แต่ฉันยังคงพยายามที่จะเริ่มต้นสัญชาตญาณเกี่ยวกับค่าลักษณะเฉพาะที่สองของเมทริกซ์ adjacency โดยทั่วไปในทฤษฎีกราฟแนวคิดส่วนใหญ่ที่เราเจอนั้นค่อนข้างง่ายที่จะเข้าใจ แต่ในกรณีนี้ฉันไม่สามารถคิดได้ว่ากราฟชนิดใดที่จะมีค่าลักษณะเฉพาะที่สองต่ำมากหรือสูงมาก ฉันได้อ่านคำถามที่คล้ายกันถามที่นี่และมีในเครือข่าย SE แต่พวกเขามักจะอ้างถึงค่าลักษณะเฉพาะในสาขาที่แตกต่างกัน ( การวิเคราะห์หลายตัวแปร , เมทริกซ์ระยะทาง Euclidian , เมทริกซ์สหสัมพันธ์ ... ) แต่ไม่มีอะไรเกี่ยวกับการแบ่งสเปกตรัมและทฤษฎีกราฟ ใครสามารถลองและแบ่งปันสัญชาตญาณ / ประสบการณ์ของเขาของค่าลักษณะเฉพาะที่สองนี้ในกรณีของกราฟและเมทริกซ์ adjacency?

1
ทำไม P และ P / โพลีไม่เหมือนกันเล็กน้อย?
นิยามของ P เป็นภาษาที่สามารถตัดสินใจได้โดยอัลกอริทึมเวลาพหุนาม คำจำกัดความของ P / poly สามารถนำมาใช้เป็นภาษาที่สามารถตัดสินใจได้โดยวงจรขนาดพหุนาม (ดูที่http://pages.cs.wisc.edu/~jyc/02-810notes/lecture09.pdf ) ทีนี้ทำไมไม่สามารถจำลองวงจรขนาดพหุนามในเวลาพหุนามได้?

4
ภาษาใน NSPACE (O (n)) และน่าจะไม่อยู่ใน DSPACE (O (n))
จริง ๆ แล้วฉันพบว่าชุดของภาษาที่คำนึงถึงบริบท, (ภาษาที่ยอมรับ) ไม่ได้ถูกกล่าวถึงอย่างกว้างขวางว่าเป็น (ภาษาปกติ) หรือ (ภาษาที่ไม่มีบริบท) และยังเปิดปัญหาไม่ได้โด่งดังในฐานะ "ปัญหา" คล้ายคลึง: " "CSLCSL\mathbf{CSL}=NSPACE(O(n))=LBA=NSPACE(O(n))=LBA\mathbf{=NSPACE(O(n)) = LBA}REGREG\mathbf{REG}CFLCFL\mathbf{CFL}DSPACE(O(n))=?NSPACE(O(n))DSPACE(O(n))=?NSPACE(O(n))\mathbf{DSPACE(O(n))} =^{?} \mathbf{NSPACE(O(n))}P=?NPP=?NP\mathbf{P} =^{?} \mathbf{NP} มีการเปรียบเทียบเช่นนี้หรือไม่? มีภาษาในซึ่งไม่สามารถพิสูจน์ได้ว่าเป็น (เช่นภาษาทั้งหมด) หรือไม่CSLCSL\mathbf{CSL}DSPACE(O(n))DSPACE(O(n))\mathbf{DSPACE(O(n))}NPNP\mathbf{NP} นอกจากนี้: มีภาษาในซึ่งเป็น "สมบูรณ์" ในความหมายต่อไปนี้: หากเราพิสูจน์ได้ว่าอยู่ในเราได้รับ ?LLLCSLCSL\mathbf{CSL}LLLDSPACE(O(n))DSPACE(O(n))\mathbf{DSPACE(O(n))}DSPACE(O(n))=NSPACE(O(n))DSPACE(O(n))=NSPACE(O(n))\mathbf{DSPACE(O(n)) = NSPACE(O(n))} (อาจเป็นแค่เรื่องของความเห็น) ปัญหาทั้งสองในระดับความยากเท่ากันหรือไม่?

2
คุณสมบัติที่ถอดรหัสได้ของ reals ที่คำนวณได้
"ทฤษฎีบทของไรซ์สำหรับการคำนวณซ้ำ" - นั่นคือไม่มีคุณสมบัติที่ไม่น่าสนใจของจำนวนที่แทนด้วยความจริงที่คำนวณได้ที่ให้นั้นเป็น decidable - จริงหรือไม่? สิ่งนี้สอดคล้องกับการเชื่อมโยงของ reals โดยตรงหรือไม่?

5
มีวิธีที่รู้จักกันในการสร้างไวยากรณ์ที่ได้รับชุด จำกัด ของสตริง จำกัด ?
จากการอ่านของฉันดูเหมือนว่าไวยากรณ์ส่วนใหญ่เกี่ยวข้องกับการสร้างสตริงจำนวนอนันต์ ถ้าคุณทำงานในทางตรงกันข้าม หากให้ความยาว n สตริงของ m คุณควรสร้างไวยากรณ์ที่จะสร้างสตริงเหล่านั้นและเป็นเพียงสตริงเหล่านั้น มีวิธีการที่เป็นที่รู้จักกันสำหรับการทำเช่นนี้หรือไม่? นึกคิดชื่อเทคนิคที่ฉันสามารถวิจัย อีกวิธีหนึ่งฉันจะดำเนินการค้นหาวรรณกรรมเพื่อค้นหาวิธีการดังกล่าวได้อย่างไร

2
ความซับซ้อนของการค้นหาร่วมกับเส้นทางการบีบอัดโดยไม่ต้องอันดับ
วิกิพีเดียกล่าวว่าสหภาพตามลำดับโดยไม่ต้องบีบอัดเส้นทางให้ซับซ้อนเวลาตัดจำหน่ายของ O ( บันทึกn )O(log⁡n)O(\log n)และการรวมกันทั้งสองแบบโดยการจัดอันดับและการบีบอัดเส้นทางทำให้ความซับซ้อนของเวลาตัดจำหน่ายเป็น O ( α ( n ) )O(α(n))O(\alpha(n)) (ในกรณีที่ αα\alphaเป็นค่าผกผันของฟังก์ชัน Ackerman) อย่างไรก็ตามไม่ได้กล่าวถึงเวลาในการบีบอัดพา ธ ที่ไม่มีอันดับสหภาพซึ่งเป็นสิ่งที่ฉันมักจะนำไปใช้ ความซับซ้อนของเวลาที่ถูกตัดจำหน่ายของยูเนี่ยนค้นหาด้วยการเพิ่มประสิทธิภาพการบีบอัดพา ธ แต่ไม่มีสหภาพโดยการเพิ่มประสิทธิภาพอันดับคืออะไร

3
การแสดงออกปกติสามารถไม่มีที่สิ้นสุด?
ฉันรู้ว่าภาษาที่สามารถกำหนดได้โดยใช้นิพจน์ทั่วไปและภาษาที่สามารถจดจำได้โดย DFA / NFA (finite automata) นั้นเทียบเท่า ยังไม่มี DFA สำหรับภาษานี้{0n1n| n≥0}{0n1n|n≥0}\{0^n1^n|n \ge 0\}. แต่ก็ยังสามารถเขียนได้โดยใช้การแสดงออกปกติ (สำหรับเรื่องที่ไม่ได้ภาษาปกติใด ๆ ) เป็น{ ε } ∪ { 01 } ∪ { 0011 } . . . . .{ϵ}∪{01}∪{0011}......\{ \epsilon \} \cup \{01\} \cup \{0011\}....... แต่เรารู้ว่าทุกภาษาที่มีการแสดงออกปกติมี DFA ที่ตระหนักถึงมัน (ขัดแย้งกับคำสั่งก่อนหน้าของฉัน) ฉันรู้ว่านี่เป็นเรื่องเล็กน้อย แต่คำจำกัดความของการแสดงออกปกติรวมถึงเงื่อนไขที่ควรจะมีขอบเขตหรือไม่?

2
มีใครสามารถอธิบายแผนภาพนี้เกี่ยวกับการจัดสรร Slab ได้หรือไม่?
ฉันพยายามเข้าใจว่า Slab Allocation ทำงานอย่างไรและเหตุใดจึงแตกต่างหรือดีกว่าการจัดเพจทั่วไป ฉันพบแผนภาพนี้ซึ่งฉันเชื่อว่าจะมีประโยชน์หากมีคำอธิบายเพิ่มเติม บางคำถาม: รายการ 3KB และ 7KB หมายถึงอะไร พวกเขาจะต้องเกี่ยวข้องอย่างใด? ทำไมพวกเขาถึงทำแบบนั้น? ในคอลัมน์แคชกล่องสีเทาหรือกล่องสีขาว / สีน้ำเงินภายในกล่องสีเทาหรือไม่ กล่องสีเทาเป็นแพ็คเกจของแคชหรือไม่ แผ่นพื้นเป็นเพียงกล่องสีน้ำเงินหรือเป็น "แผ่นที่อยู่ติดกันทางกายภาพ" ทั้งหมดหรือไม่ ฉันขอขอบคุณความช่วยเหลือ ขอบคุณ!

2
คำจำกัดความที่สร้างสรรค์มาตรฐานของจำนวนเต็ม rationals และ reals?
จำนวนธรรมชาติถูกกำหนด inductively เป็น (ใช้ไวยากรณ์ Coq เป็นตัวอย่าง) Inductive nat: Set := | O: nat | S: nat -> nat. มีวิธีมาตรฐานในการกำหนดจำนวนเต็ม (และชุดอื่น ๆ เช่น rationals และ reals) อย่างสร้างสรรค์?

1
ทำไมการเปรียบเทียบจึงมีราคาแพงใน GPU
ในขณะที่พยายามปรับปรุงประสิทธิภาพของคลาสการตรวจหาการชนกันของฉันฉันพบว่า ~ 80% ของเวลาที่ใช้ไปกับ gpu มันใช้กับเงื่อนไขอื่น ๆ ที่พยายามหาขอบเขตของถังที่มันควรวนผ่าน อย่างแม่นยำมากขึ้น: แต่ละเธรดจะได้รับ ID โดย ID นั้นจะดึงสามเหลี่ยมจากหน่วยความจำ (3 จำนวนเต็มแต่ละรายการ) และโดย 3 นั้นจะดึงจุดยอดของมัน (3 ลอยแต่ละ) จากนั้นจะแปลงจุดยอดเป็นจุดกริดจำนวนเต็ม (ปัจจุบัน 8x8x8) และแปลงให้เป็นขอบเขตสามเหลี่ยมบนกริดนั้น ในการแปลง 3 คะแนนเป็นขอบเขตจะพบ min / max ของแต่ละมิติในแต่ละจุด เนื่องจากภาษาการเขียนโปรแกรมที่ฉันใช้นั้นขาด minmax ที่แท้จริงฉันจึงสร้างมันขึ้นมาตัวเองมีลักษณะดังนี้: procedure MinMax(a, b, c): local min, max if a > b: max = a min …

1
การพิสูจน์ความซับซ้อนของเวลาสำหรับการนำทรีเซ็กเมนต์ของปัญหาผลรวมระยะไกล
ผมเข้าใจว่าต้นไม้ส่วนที่สามารถใช้ในการหาผลรวมของอาร์เรย์ย่อยของ และที่สามารถทำในนี้เวลาตามกวดวิชาที่นี่AAAO (บันทึกn )O(log⁡n)\mathcal{O}(\log n) แต่ฉันไม่สามารถพิสูจน์ได้ว่าเวลาสอบถามย่อมเป็นn) ลิงค์นี้ (และอื่น ๆ อีกมากมาย) บอกว่าเราสามารถพิสูจน์ได้ว่าในแต่ละระดับจำนวนสูงสุดของโหนดประมวลผลเป็นและอื่น ๆn)O (บันทึกn )O(เข้าสู่ระบบ⁡n)\mathcal{O}(\log n)444O (4บันทึกn ) = O ( บันทึกn )O(4เข้าสู่ระบบ⁡n)=O(เข้าสู่ระบบ⁡n)\mathcal{O}(4 \log n) = \mathcal{O}(\log n) แต่เราจะพิสูจน์เรื่องนี้ได้อย่างไรโดยความขัดแย้ง? และถ้าเป็นเช่นนั้นถ้าเราจะใช้เซกเมนต์ต้นไม้เพื่อหาผลรวมของอาร์เรย์มิติที่สูงขึ้นการพิสูจน์จะขยายออกไปได้อย่างไร? ตัวอย่างเช่นฉันสามารถคิดถึงการหาผลรวมย่อยของเมทริกซ์ย่อยโดยแบ่งเมทริกซ์ดั้งเดิมออกเป็น 4 ส่วน (คล้ายกับช่วงเวลาแบ่งครึ่งในอาร์เรย์เชิงเส้น) สร้างต้นไม้เซ็กเมนต์ Quadrant แต่หลักฐานพิสูจน์ฉัน

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

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