Score:6

รีจิสเตอร์การเปลี่ยนแปลงความคิดเห็นตามเสียงข้างมาก

ธง br

รีจิสเตอร์กะการตอบสนองเชิงเส้น (LFSR's) ทำงานโดยใช้บิตสตริงที่มีความยาวคงที่ $b\in\{0,1\}^n$เช่นเดียวกับ "แท็ป" (ตำแหน่งบิต) คงที่ และใช้ XOR กับแทป ให้บิตเอาต์พุตหนึ่งบิต ซึ่งต่อท้ายที่ $ข$ หลังจากเปลี่ยนมัน

ตอนนี้ XOR เป็นฟังก์ชันเชิงเส้นฟังก์ชันที่ไม่ใช่เชิงเส้นโดยธรรมชาติที่สามารถใช้กับชุดก๊อกคงที่คือ "การลงคะแนนเสียงข้างมาก" ซึ่งทำงานดังนี้: ถ้าก๊อกส่วนใหญ่คือ $0$จากนั้นเราจะส่งออก $1$, และในทางกลับกัน. (สำหรับสิ่งนี้ ควรมีจำนวนก๊อกเป็นเลขคี่)

การใช้งานที่เรียบง่ายของการลงทะเบียนการเปลี่ยนแปลงตามความคิดเห็นส่วนใหญ่สามารถพบได้ ที่นี่.

แน่นอนว่าการใช้ขั้นตอน "การลงคะแนนเสียงข้างมาก" นี้ซ้ำแล้วซ้ำเล่า ในที่สุดสิ่งนี้ก็ได้รับการเผยแพร่เป็นระยะ

คำถาม. กำหนดความยาวบิตคงที่ $n$อะไรคือขอบเขตล่างของความยาวสูงสุดของช่วงเวลาที่สามารถทำได้โดยเลือกสตริงเริ่มต้นที่เหมาะสม $b\in \{0,1\}^n$ และชุดก๊อกที่เหมาะสม?

นอกจากนี้ ฉันไม่สามารถทราบได้ว่ามีการศึกษาแนวคิดนี้หรือไม่และที่ใด

John Deters avatar
cn flag
แม้จะไม่ใช่คำตอบสำหรับคำถามของคุณ แต่เมนเฟรม CDC โบราณมีคำสั่ง "จำนวนประชากร" CXi Xk ซึ่งจะส่งออกจำนวน 1 บิตที่ตั้งค่าในรีจิสเตอร์ Xk เพื่อรีจิสเตอร์ Xi หรือเรียกอีกอย่างว่า "popcount" หรือ "คำสั่งของ NSA" การใช้งานจริงเบื้องต้นสำหรับโอเปอเรเตอร์นี้ถูกตั้งทฤษฎีว่าเป็นการเข้ารหัส โดยบ่งชี้ว่าอาจมีการศึกษาหรือรู้จักกันในทศวรรษที่ 1960 และ 70 ดูhttps://vaibhavsagar.com/blog/2019/09/08/popcount/#:~:text=Most%20CPU%20architectures%20in%20use%20today%20have%20an,%2800100110%29%20is%203% 20และ%20popcount%20%2801100000%29%20is%202. สำหรับข้อมูลเพิ่มเติม
Dominic van der Zypen avatar
br flag
น่าสนใจจริงๆ - ขอบคุณ @JohnDeters สำหรับความคิดเห็นนี้! นอกจากนี้ ฉันยังใช้ฟังก์ชันใน [การใช้งานของฉันบน GitHub](https://github.com/dominiczypen/Majority_Feedback_Shift_Register/blob/main/mfsr.c) ที่เรียกว่า popcount() บางทีการใช้ popcount ที่มีอยู่ใน CPU อาจเร็วกว่ามาก
qwr avatar
jp flag
qwr
x86 มีคำสั่ง popcount ด้วย https://www.felixcloutier.com/x86/popcnt
b degnan avatar
ca flag
btw ในฮาร์ดแวร์จริง วงจรส่วนใหญ่ใช้พื้นที่มาก ความเรียบง่ายที่คุณเห็นใน C คือระดับเกทที่ไม่มีอยู่จริง
Score:2
ธง ng

ฉันกำลังอ่านคำถามที่ถามหา $b(n)$ใหญ่ที่สุดเท่าที่จะเป็นไปได้ เพื่อให้เราสามารถแสดงจุดแตะที่แตกต่างกัน (เป็นเลขคี่) และ $n$สถานะ -bit นำไปสู่ลำดับคาบของคาบเวลา (สั้นที่สุด) เป็นอย่างน้อย $b(n)$ ขั้นตอน

ฉันมีการก่อสร้างด้วย $b(n)=2n-2$ สำหรับ $n\ge3$. ก๊อกเป็นสามบิตถัดไปที่จะหลุดออกจาก MVFSR สถานะเป็นศูนย์ทั้งหมด ยกเว้นบิตถัดไปที่จะออกจาก MVFSR นี่คือภาพประกอบด้วย $n=8$: เวลาที่ผ่านไปจากซ้ายไปขวา MVSFR เลื่อนลง บิตถัดไปเข้าสู่ด้านบน การแตะสามครั้งถูกทำเครื่องหมายด้วย *.

   0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0
   0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0
   0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0
   0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0
   0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0
*  0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0
*  0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1
*  1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1

หากเรายอมแตะเพียงครั้งเดียว เราก็ไปถึง $b(n)=2n$.

ฉันหวังว่า $b(n)$ สามารถปรับปรุงได้ (เพิ่มขึ้น) อาจจะทวีคูณ แต่ก็มากกว่านั้นแล้ว $1$ ของ คำตอบนี้, และ $2$ ของ ความคิดเห็นนี้.

Dominic van der Zypen avatar
br flag
ขอบคุณมากสำหรับคำตอบของคุณ -> มันคงจะดีมากถ้าเห็น $b(n)$ เพิ่มขึ้นเป็นเลขชี้กำลังแม้จะมีการแตะจำนวนเล็กน้อยอย่างชาญฉลาด อาจจะแตะแค่ $3$ เท่านั้น
Score:2
ธง ru

ฉันลังเลที่จะเรียกร้องขอบเขตที่ต่ำกว่า 1

เราทราบว่าสำหรับการลงทะเบียนการเปลี่ยนความคิดเห็นของการลงคะแนนเสียงข้างมาก (ต่อไปนี้คือ MVFSR) หากมี $2k+1$ แตะและหากถึงจุดใดที่การลงทะเบียนมีมากที่สุด $k$ ศูนย์ (ตามลำดับมากที่สุด $k$ อัน) จากนั้นการลงทะเบียนจะเติมด้วยอัน (ตามลำดับด้วยศูนย์) และเข้าสู่รอบ 1

ในทำนองเดียวกัน เรารู้สึกว่ามีความเป็นรูปธรรมมากใน MVFSR ที่มีการเติมเบาบางที่มีศูนย์จำนวนมากมีแนวโน้มที่จะสร้างการตอบกลับเป็นศูนย์และการเติมที่หนาแน่นด้วยจำนวนมากมีแนวโน้มที่จะสร้างการตอบรับเดียว การวิเคราะห์แบบฮิวริสติกจะทำให้ความหนาแน่นของการเติมลดลงจาก 1/2 และไปสู่ความเสื่อมข้างต้น

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

เราสามารถทราบได้ว่าแผนที่จากการเติมเพื่อเติมสำหรับ MVFSR มีแผนที่แบบสองต่อหนึ่งจำนวนมากซึ่งวางขอบเขตบนที่ไม่ดีในความยาวรอบสุดท้าย โดยทั่วไปเติมที่ไหน $k+1$ ของครั้งแรก $2k$ ก๊อกเป็นศูนย์หรือหนึ่ง (กล่าวคือมีไม่ตรง $k$ ศูนย์และ $k$ คนแรก $2k$ ตำแหน่งการแตะ) เป็นการเติมโดยที่บิตการแตะที่เก่าที่สุดไม่เกี่ยวข้องกับข้อเสนอแนะ ดังนั้นเราจึงสร้างแบบสองต่อหนึ่ง

poncho avatar
my flag
ที่จริงแล้ว บิตถัดไปที่ถูกกรณืคือส่วนผกผันของก๊อกส่วนใหญ่ ดังนั้น ฉันไม่เชื่อว่าความยาวรอบของ 1 จะเป็นไปได้ (เนื่องจากสตริงของบิตที่เหมือนกันจะเปลี่ยนเป็นส่วนใหญ่ในที่สุด และกะ ในทางตรงกันข้าม) แน่นอนว่าความยาวรอบ 2 รอบเป็นไปได้ค่อนข้างมาก เว้นแต่จะดูแลตำแหน่งก๊อก...
Dominic van der Zypen avatar
br flag
ใช่ - และขออภัยหากคำถามอาจทำให้เข้าใจผิดเล็กน้อย... ฉันต้องการถามว่าระยะเวลาหนึ่งสามารถทำได้โดยการวางก๊อกอย่างชาญฉลาดและค่าเริ่มต้นที่ $b$
Score:2
ธง ph

ฉันได้เขียนโค้ดเพื่อกำหนดค่าการแตะแรงเดรัจฉานและค่าเริ่มต้นสำหรับขนาดรีจิสเตอร์ขนาดเล็ก ดังนั้นฉันจึงมีค่าบางอย่าง แทนที่จะเป็นผลลัพธ์การวิเคราะห์แน่นอนว่าผลลัพธ์เป็นไปตามเงื่อนไขที่ไม่มีจุดบกพร่องในโค้ด (https://github.com/bmm6o/MVFSR).

สำหรับความกว้าง 4 ความยาวรอบสูงสุดคือ 8
สำหรับความกว้าง 5 ความยาวรอบสูงสุดคือ 10
สำหรับความกว้าง 6 ความยาวรอบสูงสุดคือ 12
สำหรับความกว้าง 7 ความยาวรอบสูงสุดคือ 14
สำหรับความกว้าง 8 ความยาวรอบสูงสุดคือ 48
สำหรับความกว้าง 9 ความยาวรอบสูงสุดคือ 48
สำหรับความกว้าง 10 ความยาวรอบสูงสุดคือ 80
สำหรับความกว้าง 11 ความยาวรอบสูงสุดคือ 108
สำหรับความกว้าง 12 ความยาวรอบสูงสุดคือ 140
สำหรับความกว้าง 13 ความยาวรอบสูงสุดคือ 270
สำหรับความกว้าง 14 ความยาวรอบสูงสุดคือ 270
สำหรับความกว้าง 15 ความยาวรอบสูงสุดคือ 270
สำหรับความกว้าง 16 ความยาวรอบสูงสุดคือ 480
สำหรับความกว้าง 17 ความยาวรอบสูงสุดคือ 752
สำหรับความกว้าง 18 ความยาวรอบสูงสุดคือ 1520

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

คุณอาจรู้เรื่องนี้แล้ว แต่ MVFSR ของคุณพัฒนาในลักษณะที่สถานะส่วนใหญ่มีภาพล่วงหน้า 2 ภาพพอดี ฉันไม่แน่ใจว่าจะใช้สิ่งนั้นเพื่อประเมินความน่าจะเป็นของการกระจายความยาวรอบได้อย่างไร แต่ดูเหมือนว่าจะมีประโยชน์

สำหรับวัตถุประสงค์ในการเข้ารหัสส่วนใหญ่ การกำหนดขอบเขตล่างให้กับความยาวรอบสูงสุดไม่ใช่คำถามที่สำคัญที่สุด สิ่งสำคัญกว่ามากคือความยาวขั้นต่ำ หรืออย่างน้อยวิธีระบุลักษณะและหลีกเลี่ยงวงจรสั้น ด้วยวิธีนี้จึงมีปัญหาร้ายแรงกับ MVFSR ภายใต้การเลือกการแตะที่เหมาะสม มีรอบของความยาวเพียง $2n$.

kodlu avatar
sa flag
คุณบอกว่าคุณต้องการผูกความยาวรอบขั้นต่ำ แต่ผลลัพธ์ของคุณบอกว่า "ความยาวรอบสูงสุด"
ph flag
ถูกต้อง. ฉันไม่แน่ใจว่า OP กำลังถามคำถามที่ถูกต้อง แต่จนถึงตอนนี้ ฉันกำลังตอบคำถามที่ถูกถาม ฉันวางแผนที่จะรับคำตอบอื่นด้วย
poncho avatar
my flag
ฉันได้ค้นหาความยาวรอบสูงสุดโดยอิสระอย่างสมบูรณ์ (ฉันไม่ได้ดูรหัสของคุณด้วยซ้ำ) และได้ผลลัพธ์เดียวกัน - รหัสของคุณดูเหมือนจะถูกต้อง
ph flag
ขอบคุณ @poncho ฉันเดาว่าฉันแค่ประหลาดใจจริงๆ ที่มันไม่ซ้ำซากจำเจ
poncho avatar
my flag
ไม่น่าแปลกใจอย่างมาก มีสิ่งที่ง่ายกว่า (เช่น 'ลำดับสูงสุดของการเรียงสับเปลี่ยนเหนือวัตถุ k คืออะไร') ที่ไม่ซ้ำซากจำเจ...
poncho avatar
my flag
นอกจากนี้ ฉันได้ค้นหาในทิศทางอื่น "สำหรับความกว้างและชุดของก๊อกจำนวนคี่ใดๆ ความยาวรอบขั้นต่ำคือเท่าใด"; สำหรับความกว้าง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา