โครงสร้างข้อมูลมีความผิดปกติ


20

ข้อจำกัดความรับผิดชอบ: ฉันไม่ใช่นักทฤษฎี CS

มาจากพีชคณิตนามธรรมฉันคุ้นเคยกับสิ่งต่าง ๆ ที่มีความเท่าเทียมกับมอร์ฟิซึ่มส์ - แต่ฉันมีปัญหาในการแปลงแนวคิดนี้เป็นโครงสร้างข้อมูล ฉันแรกคิดว่าตรง morphisms bijective ตั้งทฤษฎีจะพอเพียง แต่ฉันวิ่งเข้าไปในกำแพงค่อนข้างเร็ว - เหล่านั้นเป็นเพียงการเข้ารหัสและไม่จับสาระสำคัญการคำนวณของโครงสร้างข้อมูล

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

คำตอบ:


16

ไม่มีหมวดหมู่บัญญัติดังกล่าวด้วยเหตุผลเดียวกันไม่มีหมวดหมู่บัญญัติของบัญญัติ อย่างไรก็ตามมีโครงสร้างพีชคณิตขนาดใหญ่และมีประโยชน์ในโครงสร้างข้อมูล

อีกหนึ่งโครงสร้างทั่วไปที่ยังคงมีประโยชน์อยู่ก็คือทฤษฎีของสปีชีส์ combinatorial สปีชีส์คือ functorโดยที่เป็นหมวดหมู่ของเซต จำกัด และ bijections ระหว่างพวกมัน คุณสามารถนึกถึงเผ่าพันธุ์ว่าเป็นตระกูลของโครงสร้างที่จัดทำดัชนีโดยกลุ่มสถานที่ที่เป็นนามธรรม สิ่งนี้จะอธิบายถึงความเป็น functoriality บน - ครอบครัวเหล่านี้จะต้องไม่เปลี่ยนแปลงเนื่องจากการเปลี่ยนชื่อนามธรรม จากนั้นแคลคูลัสของสปีชีส์จะสร้างวิธีการทำงานในระดับ functorial เพื่อสร้างชุดของโครงสร้างข้อมูลแทนที่จะนับB BF:BBBB

หากต้องการดูทฤษฎีนี้ในภาษาการเขียนโปรแกรมคุณสามารถอ่านกระดาษ Haskell Symposium ของ Brent Yorgey, Species and functors และประเภทได้! . ฉันคิดว่า Sage มีแพคเกจสปีชีส์ แต่แน่นอนว่ามันจะเน้นไปที่พีชคณิตคอมพิวเตอร์มากกว่าการเขียนโปรแกรม


14

อันที่จริงมีความคิดแตกต่างจากมอร์ฟิซึ่มส์ซึ่งมีประโยชน์มากกว่าในการเขียนโปรแกรม มันถูกเรียกว่า "ความเท่าเทียมกันเชิงพฤติกรรม" (บางครั้งเรียกว่า "ความเท่าเทียมเชิงสังเกตการณ์") และมันถูกสร้างขึ้นโดยให้ "ความสัมพันธ์แบบจำลอง" ระหว่างโครงสร้างข้อมูลมากกว่า bijections พีชคณิตเข้ามาและสร้างพื้นที่ที่เรียกว่า "ประเภทข้อมูลพีชคณิต" ในวิทยาการคอมพิวเตอร์ที่พวกเขาผลัก isomorphisms และพีชคณิตเริ่มต้นอยู่พักหนึ่ง ในที่สุดนักวิทยาศาสตร์คอมพิวเตอร์ก็ตระหนักว่าพวกเขาถูกเข้าใจผิด กระดาษที่ดีที่พูดถึงปัญหาเหล่านี้คือ "ในเชิงสมดุลเชิงพีชคณิตเชิงสังเกตการณ์"โดย Sannella และ Tarlecki

ฉันเขียนคำตอบสำหรับคำถามอื่นใน cstheory เกี่ยวกับความสัมพันธ์เชิงตรรกะและการจำลองซึ่งพูดถึงประวัติศาสตร์ทั่วไปของความสัมพันธ์ของการจำลองในวิทยาศาสตร์คอมพิวเตอร์ คุณสามารถอ่านและติดตามการอ้างอิงที่ให้ไว้ได้ บทที่ 5 ของ "Craft of Programming" ของ Reynolds นั้นมีความพิเศษอย่างยิ่ง

หนังสือเกี่ยวกับพีชคณิต Automata Theoryโดย Holcombe มีข้อความที่น่าสนใจดังต่อไปนี้ (หน้า 42):

มีผลลัพธ์อื่น ๆ อีกมากมายที่เกี่ยวข้องกับโฮโมมอร์ฟิซึมและผลหาร ... ในขณะที่พวกเขามีความสนใจเกี่ยวกับพีชคณิตอิสระพวกเขายังไม่ได้พิสูจน์ว่ามีประโยชน์โดยเฉพาะอย่างยิ่งในการศึกษาออโตมาตะและพื้นที่ที่เกี่ยวข้อง อันที่จริงทฤษฎีเกี่ยวกับพีชคณิตของเครื่องจักรเบี่ยงเบนไปจากทิศทางที่ใช้ในทฤษฎีพีชคณิตอื่น ๆ ในแง่มุมหนึ่งที่สำคัญ ... การเน้นในทฤษฎีออโตมาตาคืออย่างไรไม่ใช่ [บน] เครื่องจักรใด "ดูเหมือน" แต่สิ่งที่ "พวกเขาสามารถทำได้" . เราจะพิจารณาว่าเครื่องจักรสองเครื่องนั้นมีความสัมพันธ์กันอย่างใกล้ชิดหากพวกเขาทั้งสองสามารถ "ทำสิ่งเดียวกัน" ได้ แต่พวกเขาอาจจะไม่ได้เป็นพีชคณิต isomorphic!


การไตร่ตรอง Holcombe อ้างอีกฉันสังเกตเห็นว่าเขากำลังพูดว่าพีชคณิตแบบดั้งเดิมที่เกี่ยวข้องกับสิ่งต่าง ๆ "ดูเหมือน" คือโครงสร้างของพวกเขา แต่พวกเขาไม่ได้จัดการกับสิ่งที่ "พวกเขาทำได้" คือพฤติกรรมของพวกเขา สิ่งนี้ดูเหมือนจะชี้ไปที่ข้อ จำกัด พื้นฐานของพีชคณิตแบบดั้งเดิมที่เกี่ยวกับวิทยาศาสตร์คอมพิวเตอร์ น่าเศร้าที่ฉันคิดว่าทฤษฎีหมวดหมู่ก็เป็นของค่ายเดียวกันเช่นกัน แต่ทฤษฎีหมวดหมู่มีสถานะเป็น "วัวศักดิ์สิทธิ์" และการพูดถึงข้อ จำกัด ของมันก็ถือว่าไม่บริสุทธิ์ หวังว่านักวิทยาศาสตร์คอมพิวเตอร์จะรวบรวมความกล้าพอที่จะพูดออกมาดังขึ้น
Uday Reddy

Uday คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับวิธีการ (หมวดหมู่ assymetry?) ของทฤษฎีหมวดหมู่ที่ดูเหมือนจะไม่เหมาะสมหรือไม่
Łukasz Lew

@ ŁukaszLewหากทฤษฎีหมวดหมู่เหมาะสมดีคุณจะสามารถพูดได้ว่านิพจน์ประเภทแลมบ์ดาลัสของแคลคูลัสที่พิมพ์ด้วยตัวแปรประเภท X เป็นหน้าที่ทั้งหมด แต่พวกมันไม่ใช่เช่น F (X) = (X -> X) ไม่ใช่ functor
Uday Reddy

7

แทนที่จะถามว่าเราสามารถเสริมสร้าง / ลดความคิดของมอร์ฟิซึ่มได้อย่างไรก็มีความเป็นไปได้ที่จะถามว่า: อะไรคือความคิดที่ถูกต้องของความเท่าเทียมกันระหว่างโครงสร้างการคำนวณและอะไรคือโครงสร้างทางคณิตศาสตร์

หนึ่งครอบครัวใหญ่ของโครงสร้างคือ coalgebras โครงสร้างเช่นรายการต้นไม้ออโตมาตะทั้งความหลากหลายอัน จำกัด และไม่สิ้นสุดนั้นสามารถอธิบายได้ว่าเป็นถ่านหิน จากนั้นเราสามารถศึกษา homomorphism หรือ isomorphism ระหว่าง coalgebras

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


2

คำเตือน: ฉันไม่แน่ใจว่าฉันเข้าใจคำถามของคุณ คุณต้องการพูดถึง isomorphism ระหว่างสองโครงสร้างข้อมูลหรือระหว่างสอง "ข้อมูลโครงสร้างข้อมูลจำเพาะ" หรือไม่? (บางครั้งเรียกว่าประเภทข้อมูลนามธรรม)

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

สำหรับข้อมูลเกี่ยวกับโมเดลโพรบเซลล์โปรดดูเช่นการสำรวจของ Miltersen ( ความซับซ้อนของเซลล์โพรบ: การสำรวจ )

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

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