ฉันจะอธิบายความสัมพันธ์พิเศษระหว่างขอบที่เชื่อมต่อได้อย่างไร


11

พิจารณาสถานการณ์ง่าย ๆ นี้ที่สามขอบเชื่อมต่อกับโหนด:

ความสัมพันธ์ที่ขอบ

ฉันต้องการเขียนคำอธิบายที่กระชับและชัดเจนเกี่ยวกับความสัมพันธ์ระหว่าง A และ B ในลักษณะที่แตกต่างจากความสัมพันธ์ระหว่าง A และ C บางอย่างเช่น“ เมื่อข้ามโหนดในทิศทางตามเข็มนาฬิกา A อยู่ติดกัน? ถึง B แต่ A ไม่อยู่ติดกัน? ถึง C. ” แต่มันไม่ได้เป็นคำคุณศัพท์จริงๆ

พูดในลักษณะที่แตกต่าง: ลองนึกภาพว่าคุณกำลังยืนอยู่บนโหนดและคุณหันไปหา A. คุณเริ่มหมุนตัวเองตามเข็มนาฬิกา ขอบต่อไปที่คุณจะพบคือ B ไม่ใช่ C

มีวิธีที่จะอธิบายความสัมพันธ์ระหว่าง A และ B ในวิธีรวบรัดเป็นทางการหรือถูกต้องกว่าที่ฉันเขียนไว้ข้างต้นหรือไม่?

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

สองวิธีที่ฉันได้ลองไปแล้ว แต่ยังไม่ถึง:

  1. การอ้างอิงโทโพโลยีแบบ 9IM : ฉันดูที่DE-9IMและแม้ว่าฉันไม่ใช่นักคณิตศาสตร์ฉันคิดว่าฉันยังสามารถบอกได้จากไดอะแกรมและคำศัพท์ที่ไม่ครอบคลุมความสัมพันธ์ประเภทนี้ ทั้งที่ฉันพบว่ามันยังอยู่ในรายละเอียดโครงสร้างที่ช่วยเหลือ ESRIหรือออราเคิลช่วยเหลือ (อาจจะมีบางอย่างอยู่ที่นั่น แต่ฉันยังหามันไม่เจอ!)

  2. ใบหน้า : ฉันเล่นด้วยความจริงที่ว่าใบหน้าทางด้าน "ทิศเหนือ" ของ A อาจล้อมรอบด้วย B แต่ไม่ใช่ C อย่างไรก็ตามอย่างที่คุณเห็นในแผนภาพที่นี่ไม่ใช่ความจริงเสมอไป ลองนึกภาพแผนภาพของฉันเป็นสารสกัดจากเครือข่ายถนนที่ A และ C เป็นถนนแดงและ B เป็นถนนที่สิ้นตายในระยะสั้น

ฉันสงสัยว่าอาจไม่มีคำเดียวสำหรับสิ่งที่ฉันพยายามจะพูด อย่างน้อยฉันก็อยากจะอธิบายความสัมพันธ์แบบนี้ได้ง่ายกว่าที่ฉันเคยทำ นี่เป็นคำถามที่ไม่ขึ้นอยู่กับแพลตฟอร์ม ตอนนี้ฉันแค่มองหาคำที่ถูกต้อง ต่อมาฉันจะพยายามใช้แนวคิดใน python (pyqgis หรือ arcpy) ใน shapefile ดังนั้นคำตอบใด ๆ ที่มีจุดสิ้นสุดในใจจะน่าสนใจเป็นพิเศษ แต่ไม่จำเป็น


ทำไมคุณไม่แนบแต่ละรายการของขอบที่เชื่อมต่อกับมันเรียงลำดับตามทิศทาง?
julien

1
ดูเหมือนว่าคุณกำลังมองหาDCEL โปรดสังเกตว่าเมื่อคุณทำให้กราฟภาพถ่ายเป็นคู่ใบหน้าจะกลายเป็นโหนด ในภาพมีชิ้นส่วนของใบหน้าทั้งสามอัลฟา , เบต้าและแกมม่ากับขอบแยกเบต้าจากแกมมาขอบ B แยกแกมมาจากอัลฟาและขอบ C แยกอัลฟาจากเบต้า มันให้กราฟวงกลมซึ่งมีข้อมูลทั้งหมดที่คุณกำลังมองหา - และแน่นอนว่ามันเป็นคำคุณศัพท์ในกราฟคู่
whuber

@ จูเลียนขอบคุณ - นั่นเป็นแนวคิดการปฏิบัติที่ดี ฉันจะลองดู แต่ก่อนอื่น ... ฉันกำลังมองหาคำหรือวลีเพื่ออธิบายความสัมพันธ์ประเภทนี้
andytilia

@whuber ขอบคุณสำหรับเคล็ดลับ ฉันไม่เคยพบ DCEL มาก่อน ดูเหมือนว่า B คือ "ถัดไป" ครึ่งหนึ่งของขอบด้านเหนือ, ครึ่งขอบทางทิศตะวันตกของ A. อืม: ถ้าฉันต้องการทวนเข็มนาฬิกา, จากนั้นฉันจะพิจารณาครึ่งหน้าทางทิศใต้ของ A และ "ไปทางทิศตะวันตก" ถูกระบุโดยโหนดทั่วไป ฉันสงสัยว่ามันจะทำงานได้หรือไม่เมื่อ B ไม่ใช่ขอบเขตของใบหน้า (เช่นถนนที่สิ้นทาง) ฉันจะตรวจสอบเพิ่มเติม
andytilia

@ จูเลียนฉันกำลังอ่านความคิดเห็นของคุณอีกครั้ง ฉันเห็นได้แล้วว่าตอนนี้คุณกำลังให้คำแนะนำแก่ฉันด้วย :-) บางทีฉันอาจใช้ "เรียงลำดับตามทิศทาง" เพื่ออธิบายความสัมพันธ์ ต้องเล่นรอบกับมันเล็กน้อย
andytilia

คำตอบ:


1

ฉันรู้ว่าฉันมาช้าไปงานปาร์ตี้ที่นี่ แต่มันค่อนข้างน่าสนใจและฉันหวังว่าคำตอบของฉันจะเป็นประโยชน์

สิ่งที่คุณถามเกี่ยวกับความสัมพันธ์เชิงคุณภาพ พี่น้องที่ไม่สนใจความสัมพันธ์เชิงปริมาณ การใช้เหตุผลเชิงคุณภาพเกิดขึ้นบ่อยครั้งในสาขาวิทยาศาสตร์เชิงพื้นที่ ตัวอย่างแบบสอบถามรวมถึง: พัสดุใดติดกับอันนี้ ฟีเจอร์ใดที่อยู่ในการซ้อนทับกันของภูมิภาค A และภูมิภาค B? ภูมิภาคใดบ้างที่มีส่วนเว้า? ถนนใดอยู่ทางซ้าย ความสัมพันธ์ที่ถูก: ติดกับภายในของเว้าและด้านซ้ายของ ข้อความค้นหาเชิงคุณภาพมักจะถูกมองข้ามหรือดูต่ำเกินไปเมื่อเปรียบเทียบกับคำถามเชิงปริมาณที่มีขนาดใหญ่สั้นหรือใหญ่กว่า

ความสัมพันธ์เชิงคุณภาพที่รับสองอินพุตเรียกว่าความสัมพันธ์แบบไบนารี มีสองสัญกรณ์ทั่วไปสำหรับสิ่งนี้: - isLeftOf (A, B) นี่คือสัญกรณ์คำนำหน้า - A isLeftOf B นี่คือสัญกรณ์มัด

ในตัวอย่างข้างต้นยังมีความสัมพันธ์ที่เป็นเอกภาพ: isConcave ความสัมพันธ์นี้เกี่ยวข้องกับภูมิภาคของตัวเองและจะส่งกลับค่าบูลีน

เพรดิเคตเชิงพื้นที่ของ Egenhofer ทั้งหมดในแบบจำลองการตัดกัน 9 จุด (อ้างอิงใน 9EIM) เป็นความสัมพันธ์แบบไบนารีระหว่างสองภูมิภาค คุณอาจสนใจ RCC ของ Randell, Cui และ Cohn (http://en.wikipedia.org/wiki/Region_connection_calculus) ความสัมพันธ์เชิงคุณภาพ (ทอพอโลยี) ที่กำหนดในพื้นที่ของการศึกษานี้เกี่ยวข้องกับภูมิภาคไปยังภูมิภาคและงานต่อมาเกี่ยวข้องกับเส้นไปยังภูมิภาคและบรรทัดต่อบรรทัด อย่างไรก็ตามนี่ไม่ใช่สิ่งที่คุณกำลังมองหา

ตกลงขออภัยสำหรับการพูดนอกเรื่อง แต่หวังว่าจะช่วยให้คำศัพท์ด้านคำถามของคุณ

@whuber ถูกต้องพร้อมกับแนะนำรายการขอบที่เชื่อมต่อเป็นสองเท่า (DCEL) นี่คือญาติใกล้ชิดของแผนที่ combinatorial มักใช้ภายใต้ที่กำบังในระบบ CAD และขอบปีก The winged edge (http://en.wikipedia.org/wiki/Winged_edge) แนวคิดคือวิธีที่มาตรฐานข้อความที่เป็นที่รู้จักกำหนดรูในรูปหลายเหลี่ยม (http://en.wikipedia.org/wiki/Well-known_text) #Geometric_objects) หมายเหตุเกี่ยวกับรูปหลายเหลี่ยมที่ลำดับของจุดนอกคือทวนเข็มนาฬิกาและตามเข็มนาฬิกาสำหรับจุดภายใน นางฟ้าตัวน้อยที่เดินไปตามขอบในคำสั่งนี้จะเห็นด้านในของภูมิภาคด้านซ้ายของเธอ

ด้วยแผนที่ combinatorial และ DCEL จุดสำคัญคือวัตถุเหล่านี้จะถูกกำหนดบนพื้นผิวที่สามารถปรับทิศทางได้ เราไม่จำเป็นต้องเข้าสู่ระเบียบคณิตศาสตร์ - ความคิดนั้นง่ายมาก: ถ้าคุณสามารถกำหนดทิศทางบนพื้นผิวได้เช่นเดียวกับระบบอ้างอิงเชิงพื้นที่ใน GIS คุณจะมีพื้นผิวที่ปรับทิศทางได้ ดังนั้นหากคุณสามารถกำหนดทิศทางได้คุณสามารถกำหนดลำดับทิศทางรอบจุดใดก็ได้บนพื้นผิว ด้วยการเรียงลำดับทิศทางคุณสามารถกำหนด isLeftOf (A, B), isRotonomAdAdToTo (A, B) และอื่น ๆ

การกำหนดลำดับรอบจุดสุดยอดในกราฟที่ฝังอยู่บนพื้นผิวต้องใช้สองการกำหนด: 1) การกำหนดป้ายกำกับให้กับจุดสิ้นสุดขอบและ 2) การกำหนดแบบแผนสำหรับการสั่งซื้อรอบจุดสุดยอด หากลำดับองค์ประกอบในอาร์เรย์ (เช่น [A, B, C] ในรูปภาพของคุณ) เป็นทวนเข็มนาฬิกาจากนั้นเราสามารถบอกได้ว่าขอบใดอยู่ทางซ้ายของ B.

ในตัวอย่างของคุณแต่ละองค์ประกอบอยู่ติดกับองค์ประกอบอื่น ๆ ความจริงนั้นยังสามารถมองเห็นได้ในอาเรย์เพราะอาเรย์นั้นหมายถึงการเรียงสับเปลี่ยนเช่นลำดับนั้นสำคัญ แต่องค์ประกอบใดเป็นอันดับแรกไม่ได้ ดังนั้น [A, B, C] จึงเท่ากับ [C, A, B] กล่าวอีกนัยหนึ่งอาร์เรย์ล้อมรอบทำให้องค์ประกอบสุดท้ายอยู่ติดกับองค์ประกอบแรก


ขอบคุณ! ฉันชอบคำว่า มันแค่ต้องขยายออกไปอย่างที่คุณพูดด้วยการประชุมเพื่อสั่งการจุดสุดยอด ในกรณีของฉันฉันต้องกำหนดกรณีการประชุมโดย case.So ฉันจะทำงานในการเขียนโค้ดบางอย่างเช่น isRotATIONALAdvertiseTo (A, B, Direction) โดยใช้การเปลี่ยนแปลงตามที่คุณแนะนำ หรือในแง่ของกรณีข้างต้น“ A คือการหมุนตามเข็มนาฬิกาซึ่งอยู่ติดกับ B และ A ไม่ใช่การหมุนตามเข็มนาฬิกาที่อยู่ติดกับ C”
andytilia

ยังไงก็ตามฉันยังไม่ได้ดูแคลคูลัสการเชื่อมต่อภูมิภาค แม้ว่ามันจะไม่ใช่สิ่งที่จะแก้ปัญหานี้ได้ (ดังที่คุณพูดถึง) แต่ก็น่าสนใจอยู่ดี คุณช่วยชี้ฉันไปที่ "ผลงานในภายหลัง" ที่คุณมีในใจโดย Randell, Cui และ Cohn ได้หรือไม่? (hm: อักขระ RC&C สร้างกรอบงานที่เรียกว่า RCC)
andytilia

4

เมื่อคุณดูโทโพโลยีและกราฟการเชื่อมต่อที่คุณได้รับจากผู้ขายเช่น Teleatlas, Navteq, ESRI เป็นต้นคุณจะเริ่มเห็นรูปแบบ (แน่นอนว่าทุกคนมีวิธีการทำสิ่งพิเศษ "ของตัวเอง")

โดยส่วนตัวแล้ว1) Geospatial Topologyและ2) Routing Graphsเป็นเพียงกราฟและสามารถวางนัยเพื่อแสดงในโครงสร้างข้อมูลเดียวกันฉันพยายามหลีกเลี่ยงสิ่งนั้นให้มากที่สุด

ฉันพยายามที่จะทำให้ความแตกต่างในหัวของฉัน

  • เมื่อฉันพูดว่า"Geospatial Topology" (1) ฉันหมายถึงโครงสร้างกราฟสำหรับแสดงความสัมพันธ์ทางเรขาคณิตของคุณลักษณะ (เช่นสิ่งที่เหลืออยู่ของขอบ A ใบหน้าที่ประกอบขึ้นด้วยขอบ [A, B, C] สิ่งที่มีใบหน้าอยู่ B ฯลฯ )
  • เมื่อฉันพูดว่า"กราฟเส้นทาง" (2) ฉันหมายถึงโครงสร้างกราฟสำหรับแก้ปัญหาเส้นทาง (เช่นเส้นทางที่สั้นที่สุดสำหรับการเดินทางจาก A-> B ด้วยข้อ จำกัด / เงื่อนไข [X])

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

ESRI ทำสิ่งนี้ พวกเขามีโครงสร้างกราฟสำหรับGeospatial Topology (TopologyGraph)และโครงสร้างกราฟที่แตกต่างกันสำหรับปัญหาการกำหนดเส้นทาง (ชุดข้อมูลเครือข่าย) Heck พวกเขายังมีโครงสร้างกราฟที่เก่ากว่า - เครือข่ายทางเรขาคณิต - ที่ทำหน้าที่ได้ดีสำหรับปัญหาการไหลในเครือข่ายสาธารณูปโภค

เนื้อหาในโลก PostgreSQL / PostGIS เรายังพบสิ่งนี้ มีโครงสร้างข้อมูลสำหรับเป็นเส้นทางและอีกคนหนึ่งสำหรับโครงสร้างเชิงพื้นที่

ในคำถามของคุณคุณกำลังพูดถึงกราฟและนำทางตามเข็มนาฬิกาและทวนเข็มนาฬิกาเช่นเดียวกับใบหน้าซึ่งทำให้ฉันสิ่งที่คุณต้องการโครงสร้างพิเศษสำหรับ (1)

สำหรับ "Geospatial โทโพโลยี" ผมคิดว่าเป็นวิธีที่ดีของการเป็นตัวแทนชนิดของโทโพโลยีนี้เป็นวิธีที่อุทกศาสตร์สำนักงานสหราชอาณาจักรจะอยู่ในพวกเขาคำอธิบาย S57 โทโพโลยีของเต็มโทโพโลยี

โทโพโลยีแบบเต็ม UKHO

คล้ายกับสิ่งที่การใช้งานหลักทั้งหมดทำ

ทีนี้ถ้าสิ่งที่คุณกำลังมองหาคือการกำหนดเส้นทางกราฟจะแตกต่างกันไปตามว่าคุณต้องการทิศทางเดียวหรือการเชื่อมต่อแบบสองทิศทาง ในตอนท้ายมันเดือดลงไปที่:

  • การมีFROM โหนดเชื่อมต่อกับโหนดที่สร้างขอบ
  • ขอบมีแอตทริบิวต์ด้านซ้ายและขวา (เช่นช่วงที่อยู่)
  • Junctions (IE โหนดที่เชื่อมต่อขอบ) จะมีชุดของข้อ จำกัด ดังนั้นโดยทั่วไปคุณจะมีรายการแยกหลักเพื่อแสดงถึงจุดแยกเองและแต่ละรายการที่มีรายการFROMและTOสำหรับแสดงข้อ จำกัด การไหล

ขอให้โชคดีและแจ้งให้เราทราบว่าโครงการของคุณเป็นอย่างไร


ขอบคุณมากสำหรับการสร้างความแตกต่างที่ชัดเจนระหว่างกราฟสองประเภท คุณคิดว่าเป็นความแตกต่างที่เป็นธรรมหรือไม่ที่จะบอกว่ากราฟการจัดเส้นทางโดยทั่วไปมีข้อมูลบางอย่างบนขอบและ / หรือโหนดในขณะที่ Geospatial Topology ไม่ต้องการการแสดงที่ขอบและโหนด (มันขึ้นอยู่กับความสัมพันธ์เชิงพื้นที่ระหว่างวัตถุ) ฉันเดาว่าปัญหาของฉันเข้ากันได้ดีกับโดเมนของ Geospatial Topology: ความสัมพันธ์ระหว่าง Edges A และ B นั้นมีอยู่โดยไม่คำนึงถึงการระบุแหล่งที่มาบนขอบ แต่ฉันยังขาดวิธีย่อในการตั้งชื่อความสัมพันธ์นี้ ...
andytilia

ฉันคิดว่ามันมีความแข็งแกร่งเกินกว่าที่จะบอกว่า "Geospatial Topology ไม่ต้องการการแสดงที่ขอบและโหนด" มันเป็นกรณี ๆ ไป ฉันเห็นกราฟโทโพโลยีที่มีการระบุแหล่งที่มาซึ่งใช้ร่วมกันระหว่างคุณลักษณะที่มีโหนดนั้น ตัวอย่างคือค่า Z หรืออุณหภูมิ ฉันจะบอกว่าเพียงแค่เรียกว่าโหนดและสร้างความแตกต่างของโหนดที่เชื่อมต่อเมื่อจำเป็น แต่แน่นอนฉันไม่มีบริบทโดยรวมของปัญหาโดยรวมที่คุณพยายามแก้ไข
Ragi Yaser Burhum

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

1
แน่นอน :) นั่นคือเหตุผลที่ฉันพูดถึง Junctions ฉันกำลังคิดเกี่ยวกับกรณีนี้ วิธีหนึ่งในการทำเช่นนี้คือการแสดงจุดเชื่อมต่อเป็น "ปมหลัก" ด้วยรายการ FROM-TO สถานการณ์การข้าม / ทางลอดเกิดขึ้นตลอดเวลา แม้แต่กรณีที่เลวร้ายที่สุดเช่นสะพานเบย์หรือในชิคาโกที่คุณมีขอบที่ตรงกับพื้นที่ 2 มิติ (ซึ่งมีประสิทธิภาพอยู่ด้านบนของกันและกัน) ด้วยชุดของขอบที่ไหลในทิศทางเดียวในขณะที่อีกชุดจะไหลในทิศทางอื่น
Ragi Yaser Burhum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.