Bağlı kenarlar arasındaki özel bir ilişkiyi nasıl tanımlarım?


11

Üç kenarın bir düğümde bağlandığı bu basit durumu göz önünde bulundurun:

uç ilişkiler

A ve B arasındaki ilişkinin A ve C arasındaki ilişkiden ayıracak şekilde özlü ve net bir tanımını yazmak istiyorum. “Düğümü saat yönünde çevirirken A bitişik mi? fakat A bitişik değil mi? C'ye. ” Ama gerçekten bitişik değil.

Farklı bir şekilde söyledim: Düğüm üzerinde durduğunuzu ve A'ya baktığınızı hayal edin. Kendinizi saat yönünde döndürmeye başlarsınız. Bir sonraki kenar C olacak, B değil.

A ve B arasındaki bu ilişkiyi yukarıda yazdığımdan daha özlü, biçimsel veya doğru bir şekilde tanımlamanın bir yolu var mı?

Yönlü olmalıdır (bu türden bir ilişki A'dan saat yönünde, diğeri saat yönünün tersinde bulunur). Ve düğümde üçten fazla kenarın bağlı olduğu durumlara kadar ölçeklendirilmelidir. Belki de yönlendirme ile ilgisi vardır? (Bunu karayolu ağları bağlamında düşünüyorum.)

Daha önce denediğim ama henüz anlamadığım iki yaklaşım:

  1. 9IM benzeri topoloji referansları : DE-9IM'e baktım ve bir matematikçi olmasam da , hala diyagram ve terimlerden bu tür bir ilişkiyi kapsamadığını söyleyebilirim. Bunu henüz ESRI yardımında veya Oracle yardımındaki topoloji açıklamalarında da bulamıyorum . (Belki orada bir şey var ama henüz bulamıyorum!)

  2. Yüzler : A'nın “kuzey” tarafındaki yüzün de sınırlanmış olabileceği gerçeği ile oynadım, ancak C değil. Ancak, burada şemada görebileceğiniz gibi, bu her zaman doğru değildir. Şemamın, A ve C'nin arteriyel yollar olduğu ve B'nin kısa bir çıkmaz yol olduğu bir yol ağından bir alıntı olduğunu hayal edin.

Söylemeye çalıştığım şey için tek bir terim olmayabileceğinden şüpheleniyorum; en azından böyle bir ilişkiyi yukarıda yaptığımdan daha basit bir şekilde tanımlamak istiyorum. Bu platformdan bağımsız bir soru. Şu anda, sadece doğru kelimeleri arıyorum. Daha sonra kavramı bir şekil dosyası üzerinde python (pyqgis veya arcpy) içinde uygulamaya çalışacağım, bu nedenle bu son noktaya ilişkin herhangi bir cevap özellikle ilginç olacak, ancak gerekli olmayacaktır.


Neden her bir düğüme, ona göre sıralanmış kenarların yönüne göre sıralanmış listesini eklemiyorsunuz?
julien

1
Bir DCEL arıyoruz gibi görünüyor . Düzlemsel bir grafiği iki katına çıkardığınızda , yüzlerin düğüm haline geldiğine dikkat edin . Çizimde üç yüzü parçaları vardır alfa , beta ve gama kenarı bir ayırma ile, beta gelen gama , ayırma kenarı B gama ile ilgili alfa ve ayırma kenarı C alfa gelen beta . Bu, aradığınız tüm bilgileri içeren döngüsel bir grafik verir - ve gerçekten de ikili grafikte bitişiktir .
whuber

@julien, teşekkürler - bu iyi bir uygulama fikri; Ben bunu deneyeceğim. Ama önce ... Bu tür bir ilişkiyi tanımlamak için bir kelime veya cümle arıyorum.
andytilia

@whuber, bahşiş için teşekkürler. Daha önce DCEL ile karşılaşmadım. Görünüşe göre B, kuzey yüzünün "sonraki" yarım kenarı, A'nın batıya doğru yarım kenarı. ortak düğüm tarafından ima edilir. B'nin bir yüz sınırı olmadığında işe yarayacağını merak ediyorum (örn. Çıkmaz yol). Daha ayrıntılı bakacağım.
andytilia

@julien, yorumunu tekrar okuyorum. Şimdi bana önerilen ifadeleri de verdiğini görebiliyorum. :-) Belki ilişkiyi tanımlamak için "talimatla sıralanmış" kullanabilirsiniz. Onunla biraz oynamalıyım.
andytilia

Yanıtlar:


1

Buradaki partiye biraz geç kaldığımı biliyorum, ama bu oldukça ilginç şeyler ve umarım cevabım biraz işe yarayabilir.

Sorduğunuz şey nitel bir ilişkidir; çoğu zaman kantitatif ilişkinin kardeşini görmezden geldi. Jeo-uzamsal bilimde nitel akıl yürütme oldukça sık görülür. Örnek sorgular şunları içerir: Hangi parseller buna bitişiktir? A bölgesi ve B bölgesi örtüşmesindeki özellikler nelerdir? Hangi bölgeler içbükeydir? Solda hangi yol var? İlişkiler şu şekildedir: içbükey ve iç. Niteliksel sorgular, daha büyük, daha kısa veya daha büyük olan nicel sorularla karşılaştırıldığında genellikle gözden kaçırılır veya önemsenmez.

İki girdi alan nitel bir ilişkiye ikili ilişki denir. Bunun için iki yaygın gösterim vardır: - isLeftOf (A, B) Bu önek gösterimidir. - A isLeftOf B Bu infix gösterimi.

Yukarıdaki örneklerde de tek bir ilişki vardı: isConcave. Bu ilişki bir bölgeyi kendisiyle ilişkilendirir ve bir boole değeri döndürür.

Egenhofer'ın 9-kavşak modelindeki (9EIM'de atıfta bulunulan) tüm uzamsal tahminleri, iki bölge arasındaki ikili ilişkilerdir. Ayrıca ilginizi çekebilir Randell, Cui ve Cohn RCC (http://en.wikipedia.org/wiki/Region_connection_calculus). Bu çalışma alanında verilen nitel (topolojik) ilişkiler bölgeleri bölgelerle, daha sonra yapılan çalışmalar çizgileri bölgeler ve çizgileri çizgilere ilişkindir. Ancak, bu tam olarak aradığınız şey değil.

Tamam, konu hakkında özür dilerim, ama umarım bu sorunuzun terminoloji yönüne yardımcı olur.

@whuber, iki kez bağlı kenar listesini (DCEL) önererek doğru yoldaydı. Bu, CAD sistemlerinde ve kanatlı kenarlarda genellikle örtülerin altında kullanılan kombinatoryal haritaların yakın bir akrabasıdır. Kanatlı kenar (http://en.wikipedia.org/wiki/Winged_edge) kavramı, tanınmış metin standardının bir çokgendeki bir deliği nasıl tanımladığıdır (http://en.wikipedia.org/wiki/Well-known_text #Geometric_objects). Çokgene dış noktaların sırasının saat yönünün tersine ve iç noktalar için saat yönünde olduğuna dikkat edin. Bu sırada sınır boyunca yürüyen küçük bir peri-kişi her zaman solundaki bölgenin içini görür.

Birleştirici haritalar ve DCEL ile kilit nokta, bu nesnelerin yönlendirilebilir bir yüzey üzerinde tanımlanmasıdır. Matematik formalitelerine girmemiz gerekmiyor - fikir oldukça basit: eğer bir CBS içindeki herhangi bir uzamsal referans sisteminde olduğu gibi, yüzeyde yön tanımlayabilirseniz, yönlendirilebilir bir yüzeye sahipsiniz. Böylece, bir yön tanımlayabilirseniz, yüzeydeki herhangi bir nokta çevresinde bir yön sırası tanımlayabilirsiniz. Yönlü sıralama ile isLeftOf (A, B), isRotationallyAdjacentTo (A, B) vb.

Bir yüzeye gömülü bir grafikte bir tepe noktasının etrafında sıralama tanımlamak için iki atama gerekir: 1) kenar uç noktalarına etiket atama ve 2) bir tepe noktası etrafında sipariş için bir kural atama. Bir dizideki öğe sırası (örneğin, resminizdeki [A, B, C]) saat yönünde ise, hangi kenarın B'nin solunda olduğunu söyleyebiliriz.

Örneğinizde, her öğe diğerlerine bitişiktir. Bu gerçek, dizide de görülebilir, çünkü dizi aslında bir permütasyonu temsil eder, yani sipariş önemlidir, ancak ilk olarak hangi öğe yoktur. Böylece [A, B, C], [C, A, B] 'ye eşittir. Başka bir deyişle, dizi son öğeyi birinciye bitişik hale getirerek etrafını sarar.


Teşekkürler! “Dönel Olarak Bitişik” terimini seviyorum. Dediğiniz gibi, bir tepe noktası etrafında sipariş verme sözleşmesi ile uzatılması gerekiyor. Benim durumumda bu konvansiyon olayını tanımlamam gerekiyor.Bu yüzden isRotationallyAdjacentTo (A, B, Direction) gibi bir şeyi kodlamayı önerdiğiniz gibi bir permütasyon kullanarak çalışacağım. Veya yukarıdaki durum açısından “A saat yönünde B yönünde bitişiktir ve A saat yönünde C yönünde bitişik değildir”.
andytilia

Bu arada, henüz Bölge Bağlantı Analizine bakmamıştım. Bu sorunu çözen şey tam olarak olmasa da (bahsettiğiniz gibi), yine de ilginçtir. Beni Randell, Cui ve Cohn'un aklında olan “daha ​​sonraki eserlere” işaret edebilir misin? (hm: RC&C karakterleri RCC adı verilen bir çerçeve oluşturdu)
andytilia

4

Teleatlas, Navteq, ESRI, vb. Satıcılardan aldığınız topoloji ve bağlantı grafiklerine baktığınızda, bir model görmeye başlayacaksınız (elbette herkesin kendi "özel" yollarını yapma şekli vardır).

Şahsen , 1) Jeo-uzamsal Topoloji ve 2) Yönlendirme Grafikleri sadece Grafiklerdir ve aynı veri yapısında temsil edilmek üzere genelleştirilebilir olsa da, bundan mümkün olduğunca kaçınmaya çalışıyorum.

Kafamda bir ayrım yapmaya çalışıyorum.

  • Demek zaman "Mekansal topolojisini" (1), örneğin kenar A kalanları, kenarlar [A, B, C] 'ile oluşturulur nasıl bir yüz yüze içerdiği ne (özellikleri geometrik ilişkileri temsil eden bir grafiktir yapısı kastedilmektedir B, vb.).
  • Demek zaman "Yönlendirme Grafik" (2), bir yönlendirme sorunları çözmek için bir grafiktir yapısı kastedilmektedir (A- dan elde etmek için örneğin, en kısa yol> [X] sınırlamalar / koşullara B)

Onlar sadece grafikler ve bilimin genişliğine aitler , ancak aynı şey olarak genelleme yapmamak gibi açık bir avantaj var. Farklı amaçlara hizmet ederler ve belirli bir amaca özel olduklarında işlemleri optimize etmek ve uygulamak çok daha kolaydır.

ESRI bunu yapar. Geospatial Topology (TopologyGraph) için bir grafik yapısına ve Yönlendirme Sorunları (ağ veri kümesi) için farklı bir Grafik yapısına sahiptirler . Heck, hatta daha büyük bir Grafik Yapısı - Geometrik Ağlar - yarar ağları akış sorunları için iyi hizmet vardır.

Muhtemelen, PostgreSQL / PostGIS dünyasında da bununla karşılaşıyoruz. Yönlendirme için bir veri yapısı ve jeo-uzamsal topoloji için başka bir yapı vardır .

Sorunuzda, grafikler hakkında konuşuyorsunuz ve bunları saat yönünde ve saat yönünün tersine, yüzlerin yanı sıra bana özel bir yapı istediğinizi yapan navigasyonlar yapıyorsunuz (1).

"Jeo-Uzamsal Topoloji" için, bu tür bir Topolojiyi temsil etmenin güzel bir yolunun, İngiltere Hidrografik Ofisinin S57 Topolojisi'nin Tam Topoloji Tanımı'nda yaptığı gibi olduğunu düşünüyorum .

UKHO Tam Topoloji

Tüm ana uygulamaların yaptıklarına çok benzer.

Şimdi, aradığınız şey yönlendirme ise, grafik tek yönlü veya çift yönlü bağlantıya ihtiyacınız olup olmadığına bağlı olarak değişir. Sonunda, kaynar:

  • Having düğümler GELEN bağlı İÇİN düğümler yaratmak Kenarları
  • Kenarlar sol ve sağ tarafında (örneğin adres aralıkları) için özelliklere sahiptir.
  • Eklemler (kenarları bağlamak burada düğümleri yani) kısıtlamalar bir kümesi olabilir. Yani temelde kavşağın kendisini temsil eden bir ana kavşak girişi ve akış kısıtlamalarını temsil etmek için FROM ve TO girişleri içeren ayrı ayrı girişleriniz olacaktır .

İyi şanslar ve projenizin nasıl sonuçlandığını bize bildirin.


İki tür grafik arasında net bir ayrım yaptığınız için çok teşekkürler. Yönlendirme Grafiklerinin genellikle kenarlar ve / veya düğümler hakkında bazı bilgiler içerdiğini söylemenin adil bir ayrım olduğunu düşünürken, Mekansal Topoloji'nin hiçbir zaman kenarlarda ve düğümlerde ilişkilendirmeye ihtiyacı yoktur (yalnızca nesneler arasındaki uzamsal ilişkilere dayanır)? Sanırım sorunum Geospatial Topology alanına tam olarak uyuyor: A ve B kenarları arasındaki ilişki kenarlardaki herhangi bir atıftan bağımsız olarak var. Ama hala bu ilişkiyi adlandırmak için kısa bir yolum yok ...
andytilia

"Jeo-uzamsal Topoloji'nin hiçbir zaman kenarlarda ve düğümlerde atıfta bulunmaya ihtiyaç duymadığını" söyleyecek kadar güçlü olduğunu düşünüyorum, gerçekten duruma göre. Bu düğüme sahip özellikler arasında paylaşılan atıf içeren Topoloji Grafikleri gördüm. Örnekler Z veya Sıcaklık değerleridir. Sadece diyelim ki sadece düğüm deyin ve gerektiğinde bağlı düğümü ayırt edin, ama tabii ki çözmeye çalıştığınız genel sorun hakkında yeterli bağlamım yok.
Ragi Yaser Burhum

Ah, sağ, teşekkürler: bir köprüden geçen iki yolun düzlemsel grafik temsili. Dört kenarlı bir düğüm olabilir, ancak tüm kenarlar birbirine bağlanmaz. Bu nedenle düğümün, bu durumu hemzemin geçitten ayırt edebilmesi için geçiş seviyeleri hakkında bilgi içermesi gerekir.
andytilia

1
Kesinlikle :). Bu yüzden Kavşaklardan bahsediyorum. O davayı düşünüyordum. Bunu yapmanın bir yolu, kavşağı FROM-TO girişleriyle bir "ana düğüm" olarak göstermektir. Üst geçit / alt geçit durumları her zaman meydana gelir. Daha da kötüsü, Körfez Köprüsü veya Chicago'da, 2D alanda eşleşen kenarların olduğu (etkin bir şekilde birbirlerinin üstünde), diğer kümenin diğer taraftan aktığı bir kenar kümesi ile durumları vardır.
Ragi Yaser Burhum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.