คำถามติดแท็ก online-algorithms

1
ผลรวมถ่วงน้ำหนักของหมายเลข N ล่าสุด
สมมติว่าเราได้รับตัวเลขในสตรีม หลังจากได้รับแต่ละตัวเลขแล้วจะต้องคำนวณผลรวมถ่วงน้ำหนักของตัวเลขสุดท้ายโดยที่น้ำหนักจะเหมือนกันเสมอ แต่ตามอำเภอใจNNN ทำได้อย่างมีประสิทธิภาพแค่ไหนหากเราได้รับอนุญาตให้เก็บโครงสร้างข้อมูลไว้เพื่อช่วยในการคำนวณ? เราสามารถทำได้ดีกว่าคือการคำนวณผลรวมทุกครั้งที่ได้รับตัวเลขหรือไม่Θ(N)Θ(N)\Theta(N) ตัวอย่างเช่นสมมติว่าน้ำหนักที่มีw_4 เมื่อมาถึงจุดหนึ่งที่เรามีรายชื่อของที่ผ่านมาตัวเลขและน้ำหนักรวม dW=⟨w1,w2,w3,w4⟩W=⟨w1,w2,w3,w4⟩W= \langle w_1, w_2, w_3, w_4\rangleNNNL1=⟨a,b,c,d⟩>L1=⟨a,b,c,d⟩>L_1= \langle a, b, c, d \rangle>S1=w1∗a+w2∗b+w3∗c+w4∗dS1=w1∗a+w2∗b+w3∗c+w4∗dS_1=w_1*a+w_2*b+w_3*c+w_4*d เมื่อจำนวนอีกจะได้รับเราปรับปรุงรายการที่จะได้รับและเราจำเป็นต้องคำนวณ .eeeL2=⟨b,c,d,e⟩L2=⟨b,c,d,e⟩L_2= \langle b,c,d,e\rangleS2=w1∗b+w2∗c+w3∗d+w4∗eS2=w1∗b+w2∗c+w3∗d+w4∗eS_2=w_1*b+w_2*c+w_3*d+w_4*e การพิจารณาโดยใช้ FFT กรณีพิเศษของปัญหานี้ดูเหมือนจะแก้ไขได้อย่างมีประสิทธิภาพโดยใช้การแปลงฟูริเยร์อย่างรวดเร็ว ที่นี่เราคำนวณจำนวนเงินชั่งน้ำหนักหลายรายการNกล่าวอีกนัยหนึ่งเราได้รับหมายเลขNและจากนั้นเราสามารถคำนวณผลรวมNน้ำหนักที่เกี่ยวข้อง การทำเช่นนี้เราต้องN-1หมายเลขที่ผ่านมา (ซึ่งจำนวนเงินที่ได้รับการคำนวณแล้ว) และยังไม่มีตัวเลขใหม่ทั้งหมด2N-1หมายเลขSSSNNNNNNNNNN−1N−1N-1NNN2N−12N−12N-1 ถ้าเวกเตอร์ของตัวเลขอินพุตและเวกเตอร์น้ำหนักWWWกำหนดสัมประสิทธิ์ของพหุนามP(x)P(x)P(x)และQ(x)Q(x)Q(x)โดยมีค่าสัมประสิทธิ์ในQQQกลับด้านเราจะเห็นว่าผลิตภัณฑ์P(x)×Q(x)P(x)×Q(x)P(x)\times Q(x)เป็น พหุนามซึ่งมีค่าสัมประสิทธิ์อยู่ด้านหน้าxN−1xN−1x^{N-1}สูงสุดx2N−2x2N−2x^{2N-2}เป็นผลรวมของน้ำหนักที่เราแสวงหา สิ่งเหล่านี้สามารถคำนวณได้โดยใช้ FFT ในเวลาΘ(N∗log(N))Θ(N∗log⁡(N))\Theta(N*\log (N))ซึ่งทำให้เรามีเวลาเฉลี่ยΘ(log(N))Θ(log⁡(N))Θ(\log (N))ต่อจำนวนอินพุต อย่างไรก็ตามนี่ไม่ใช่วิธีแก้ปัญหาตามที่ระบุไว้เนื่องจากจำเป็นต้องมีการคำนวณผลรวมถ่วงน้ำหนักอย่างมีประสิทธิภาพทุกครั้งที่รับหมายเลขใหม่ - เราไม่สามารถหน่วงเวลาการคำนวณได้

2
การคำนวณเมทริกซ์ผกผันเมื่อองค์ประกอบเปลี่ยนแปลง
รับเมทริกซ์ ให้เมทริกซ์ผกผันของAเป็นA - 1 (นั่นคือA A - 1 = I ) สมมติว่าองค์ประกอบหนึ่งในมีการเปลี่ยนแปลง (สมมติว่าฉันเจเพื่อ' ฉันเจ ) วัตถุประสงค์คือการหาA - 1หลังจากการเปลี่ยนแปลงนี้ มีวิธีการค้นหาวัตถุประสงค์นี้ที่มีประสิทธิภาพมากกว่าการคำนวณเมทริกซ์ผกผันอีกครั้งตั้งแต่เริ่มต้นหรือไม่n×nn×nn \times nAA\mathbf{A}AA\mathbf{A}A−1A−1\mathbf{A}^{-1}AA−1=IAA−1=I\mathbf{A}\mathbf{A}^{-1} = \mathbf{I}AA\mathbf{A}aijaija _{ij}a′ijaij′a' _{ij}A−1A−1\mathbf{A}^{-1}

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

3
กำหนดหมายเลขที่ขาดหายไปในสตรีมข้อมูล
เราได้รับกระแสของn−1n−1n-1ตัวเลขที่แตกต่างจากจำนวนจากชุด{1,…,n}{1,…,n}\left\{1,\dots,n\right\} } ฉันจะกำหนดจำนวนที่ขาดหายไปด้วยอัลกอริทึมที่อ่านกระแสข้อมูลหนึ่งครั้งและใช้หน่วยความจำของบิตเท่านั้น( ล็อก2 n ) ได้O(log2n)O(log2⁡n)O(\log_2 n)อย่างไร

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