Yazılarımız

Cadsay

NETWORK ANALYST İLE ROTALAMA MODELİ KURGULAMAK

ArcGIS Network Analyst rotalama modelinde depo, durak ve renkli kargo araç rotalarıyla şehir ağı görünümü

Bir kargo dağıtım firmasının İstanbul Anadolu yakası şubesinde, sabah 06:30'da on dört araca dağıtılması gereken 412 paket vardı. Operasyon sorumlusu listeyi Excel'de elle bölüyor, "şu mahalleyi şu araca ver, kadıköy çıkışı yoğun olur 07:30'dan önce çıksın" diye notlar koyuyordu. Aynı sokağa üç farklı aracın uğradığı, bir paketin teslim saati penceresinin kaçırıldığı, akşam aracın 90 km boşa yol yaptığı sıradan günlerdi bunlar. Aynı işin matematiksel bir kurguya bağlanması, yalnızca yazılım meselesi değil; depo-sipariş-araç ilişkisinin doğru modellenmesi meselesidir.

ArcGIS Network Analyst eklentisi tam bu modellemeyi sunar. Düz mesafeyle "iki nokta arasını çiz" tarzı bir yaklaşım yerine; yol ağı topolojisi, tek yön kuralları, kavşak dönüş gecikmeleri, araç tipi kısıtları ve günün saatine bağlı trafik profilleri üzerine kurulu bir çözücü ailesidir. Bu yazıda ağ veri seti hazırlığından travel mode tanımına, Route ve VRP çözücülerinin parametre seçimine kadar saha projesinde işe yarayan akışı ele alıyoruz. Konuyu uçtan uca sıralı bir programla çalışmak isteyen okurlar için Network Analyst eğitimi sayfası modülleri tek tek listeler.

AĞ VERİ SETİ NEYİ TUTAR?

Network dataset, rotalama çözücülerinin üzerinde koştuğu bağlantı modelinin adıdır. Görünüşte sıradan bir polyline katmanı gibi durur fakat üç şey eklenir: edge'ler (yol segmentleri), junction'lar (kavşaklar) ve turn'ler (dönüş kuralları). Çözücü Dijkstra benzeri bir kısayol algoritmasıyla bu yapı üstünde gezerken hangi maliyeti minimize edeceğini, hangi segmentlerden geçemeyeceğini ve hangi dönüşlerde gecikme yiyeceğini ağ veri setinin attribute tanımlarından öğrenir.

Türkiye'de yol ağı kaynakları üç ana hat üzerinde toplanır. KGM'nin otoyol ve devlet yolu envanteri, belediyelerin imar müdürlüğü altındaki ulaşım katmanları ve MAKS / UAVT üzerinden gelen şehir içi yol-kavşak şemaları temel kaynaklardır; OSM ile beslenip TS 13627 gibi yerel standartlara uydurulması yaygındır. Veri kaynağı ne olursa olsun ağ veri seti file geodatabase içinde bir feature dataset altında kurulur, içine yol katmanı (zorunlu), dönüş katmanı (opsiyonel) ve sinyalize kavşak listesi (opsiyonel) atılır. Connectivity policy varsayılan olarak "End Vertex" alınır; karmaşık üst geçit-alt geçit durumları için elevation field eklenmesi gerekir, çünkü iki çizgi haritada üst üste görünse de farklı kotta ise birbirine bağlanmamalıdır.

COST VE RESTRICTION ATTRIBUTE ARASINDAKİ FARK NEDİR?

Network dataset properties penceresinin en kritik sekmesi Attributes sekmesidir. Burada üç tip nitelik tanımlanır ve karıştırılırsa rotalama tamamen ters çalışır.

Attribute tipiNe yaparTipik örnek
CostMinimize edilen değer (sayısal, toplanır)Length (m), TravelTime (dk)
RestrictionGeçişi yasaklar veya tercih dışı yaparOneWay, KamyonYasak
HierarchyYol önemini belirler, performans için1: otoyol, 2: anayol, 3: ara yol
DescriptorBilgi taşır, hesaba girmezStreetName, RoadClass

Cost attribute her edge için bir sayı üretir; çözücü bu sayının toplamını minimize eder. Length attribute her segment için Shape.STLength() hesabıyla otomatik gelir. TravelTime ise [Length] / ([HizKmh] * 1000 / 60) formülüyle alana hesaplatılır; şehir içi yol için varsayılan 30-50 km/sa, devlet yolu için 90 km/sa, otoyol için 120 km/sa makul başlangıç değerleridir. Saha verisi varsa segment bazlı gerçek ortalama hız bu varsayılanların yerini alır.

Restriction attribute mantığı farklıdır: edge'i tamamen geçilmez yapar (Prohibited), tercih edilmez kılar (Avoid) veya tercih edilir kılar (Prefer). OneWay restriction'ı klasik örnektir; yol katmanına eklenen FT_OneWay sütunu "FT" ise sadece from-to yönünde geçişe izin verilir. Türk şehir merkezlerinde tek yön ağı oldukça yoğundur; İstanbul tarihi yarımada ve Beyoğlu bölgesinde mahalle içlerinin yüzde altmıştan fazlası tek yöndür. Bu sütun düzgün doldurulmazsa çözücü ters yönlü kestirmeler üretir, sahaya çıkan araç tıkanır.

HIERARCHY VE PERFORMANS

Hiyerarşi niteliği büyük ağlarda çözüm süresini dramatik düşürür. Network Analyst hiyerarşik aramada ana yolları öncelikli kullanır; ara sokakları ancak başlangıç-bitiş ve geçişler gerektiğinde dener. Ankara büyükşehir sınırları kadar bir ağda hiyerarşi açıkken bir Route çözümü 1-2 saniyede biterken, kapalıyken aynı çözüm 20-30 saniyeye uzayabilir. Hiyerarşi insan davranışını da simüle eder; sürücüler iki sokak öteden çıkmak yerine bir blok sonra otoyola çıkmayı tercih eder, çünkü trafiği daha öngörülebilirdir.

Standart kurgu üç seviyedir: 1 otoyol ve devlet yolu, 2 anayol ve toplayıcı, 3 ara yol ve sokak. Belediye CBS projelerinde TS yol sınıflamasına bağlı kalmak işi disipline eder. Yine de hiyerarşi bazı senaryolarda istenmez. Belediye atık toplama rotalamasında her sokağa girilmesi zorunludur; hiyerarşik çözücü atlama yapacağından kapalı bırakılır. Yaya rotalamasında da hiyerarşi açılmaz; çünkü insan otoyola çıkmaz, ara sokağı kestirme tercih eder.

TRAVEL MODE KURGUSU

Network Analyst travel mode ayar paneli ve kamyon yaya araba modlarının kısıt karşılaştırma şeması

Travel mode bir analizde kullanılacak çözüm profilini tek bir isim altında toplar: hangi cost attribute optimize edilecek, hangi restriction'lar aktif, hiyerarşi açık mı, U-turn politikası ne. Modern Network Analyst kurulumlarında ağ veri seti bir veya birkaç travel mode ile beraber kaydedilir; analist çözücüyü açtığında dropdown'dan "Driving Time", "Trucking Distance", "Walking" gibi seçim yapar ve tüm bu parametreler tek hamlede yüklenir.

Türk lojistik bağlamında en az üç travel mode kurgulamak verimli olur:

  • Kargo Aracı: TravelTime impedance, OneWay restriction aktif, KamyonYasak kapalı, hiyerarşi açık. Şehir içi dağıtım kuryeleri için.
  • Tır: TravelTime impedance, OneWay aktif, KamyonYasak ve KopruTonajLimit restriction'ları aktif, AltGecitYukseklik aktif, hiyerarşi açık. KGM uzun mesafe taşımacılığı için.
  • Çöp Kamyonu: Length impedance (her sokağa girmek gerek, süre önemli değil), OneWay aktif, hiyerarşi kapalı, U-turn allowed. Belediye atık toplama için.
  • Yaya: Length impedance, OneWay devre dışı (yaya tek yön tanımaz), AraclaraOzelYollar restriction aktif, hiyerarşi kapalı. UAVT adres doğrulama yürüyüşü için.
  • Ambulans: TravelTime impedance, OneWay ve KamyonYasak iptal edilebilir (acil durum override), hiyerarşi açık. 112 acil rotalama için.

Bir travel mode kaydedilirken Network Dataset Properties > Travel Modes sekmesinden eklenir; export-import imkanı da vardır. Bu özelliği saha disiplininde kurumsal şablon olarak kullanmak önemlidir: her yeni proje için sıfırdan kısıt girmek yerine, kurum bir kez tanımlanan beş travel mode'u her projeye taşır.

TURN FEATURE VE GLOBAL TURN DELAY

Kavşaklarda dönüş gecikmesi, gerçek dünya rotalamasının görmezden gelinemez parçasıdır. Sola dönüş sağa dönüşten yavaştır; sinyalize kavşak sinyalizesiz olandan daha yavaştır. Network Analyst bunu iki katmanda modeller. Birincisi global turn evaluator: feature dataset içinde tek bir tablo ile "tüm sola dönüşler X saniye gecikir, sağa dönüşler Y saniye, düz devam Z saniye" tarzı evrensel kural konur. İkincisi turn feature class: kavşak bazlı yasak veya gecikme tanımı. Bir kavşakta sola dönüş yasaksa o üç edge'i içeren bir turn feature işaretlenir ve Restricted attribute'una set edilir.

İstanbul Boğaziçi bağlantı yolları, Ankara Eskişehir yolu kavşakları ve İzmir Karşıyaka tramvay kavşaklarında turn restriction'ları olmadan rotalama saha gerçeğine uymaz. Pratik bir kalibrasyon: tanıdık bir kavşaktan tanıdık bir hedefe Yandex Navigasyon süresini al, aynısını Route ile çözdür. Sapma yüzde on beş üstündeyse global turn delay değerleri düşük kalmış demektir; sinyalize ana kavşakları 20-25 saniye, küçük kavşakları 5-10 saniye genelde dengeler.

ROUTE ÇÖZÜCÜSÜ NE ÜRETİR?

Route en temel çözücüdür ve günlük kullanımda en çok başvurulanıdır. Sıralı durakları okur, en uygun yolu bulur, sırayı koruyabilir ya da optimize edebilir.

Girdi feature class'ı Stops'tur ve şu alanları taşır: Name (durak adı), RouteName (birden fazla rotayı tek katmanda tutmak için), Sequence (durak sırası, optimizasyona açık), TimeWindowStart ve TimeWindowEnd (varış pencere kısıtı), CurbApproach (hangi taraftan yanaşılacağı, sağ trafikte 1 yaygın), LocationType (Stop, Waypoint, Break ayrımı). Barrier feature class'ları üç tiptedir: Point Barriers (kapatılan kavşak), Line Barriers (kapatılan caddenin segmenti), Polygon Barriers (tüm bir bölge kapatması; örneğin maraton güzergahı veya zirve trafik kapatmaları).

Sıra koruma stratejisi beş seçenektir: Use Current (Sequence sütunundaki sırayı koru), Find Best (tüm sırayı optimize et), Preserve First Stop (başlangıç sabit, geri kalan optimize), Preserve Last Stop (bitiş sabit), Preserve First & Last (depo-depo gidişatı için klasik). Şehir içi kargo dağıtımında Preserve First Stop tipiktir; araç sabahleyin depodan çıkar, durakların sırası optimize edilir. Belediye atık toplama gibi her sokağa girilmesi gereken senaryolarda Use Current ile manuel kurulan sıra korunur.

Time of Day parametresi gerçek dünyaya uygun rotalama için kilittir. Eğer ağ veri setinde time-dependent traffic profile (saat bazlı hız tablosu) tanımlıysa, çözücü 17:30'da çözülen rotayla 22:00'da çözülen rotayı farklı verir. İstanbul gibi bir şehirde sabah 08:30'da Mecidiyeköy-Bostancı 65 dakika, 22:30'da 22 dakika sürüyorsa, bu farkı modele yedirmeden lojistik planı kurulamaz. Esri'nin global hizmetlerinde HERE veya TomTom kaynaklı geçmiş trafik verisi mevcuttur; lokal ağda DailyProfiles ve Streets_DailyProfiles tablolarına geçmiş ölçümlerden kalibrasyon yapılır.

VRP ÇÖZÜCÜSÜYLE FİLO NASIL ROTALANIR?

VRP çözümü sonrası depo etrafında ondört farklı renkte araç rotası ve zaman penceresi olan müşteri durakları

Tek araç tek rota değil de bir filo planlamak gerektiğinde Vehicle Routing Problem çözücüsü devreye girer. VRP yalnızca yol seçimini değil, hangi siparişin hangi araca verileceğini de optimize eder. Yedi feature class ve tablo üzerine kuruludur ve hepsi belirli bir mantıkla doldurulmalıdır.

  1. Orders: Müşteri siparişleri. Alanlar: ServiceTime (her durağa ayrılan dakika), TimeWindowStart/End, TimeWindowStart2/End2 (ikinci pencere, örn öğleden önce ve sonra), DeliveryQuantity_1...9 (dokuza kadar bağımsız boyut, örn DeliveryQuantity_1 kg, DeliveryQuantity_2 m³), PickupQuantity_1...9, Revenue (ciro değeri, opsiyonel müşteri atlama izinli senaryolarda), AssignmentRule (zorunlu/önerilen/atlanabilir).
  2. Depots: Başlangıç ve bitiş noktaları. Alanlar: Name, TimeWindowStart/End (deponun açık olduğu saat), ikincil pencere TimeWindowStart2/End2. Bir araç farklı bir depodan çıkıp farklı bir depoya dönebilir.
  3. Routes: Araç tanımları. Alanlar: StartDepotName, EndDepotName, EarliestStartTime, LatestStartTime (sürücünün esnek başlama aralığı), Capacity_1...9 (kapasite boyutları), MaxOrderCount, MaxTotalTime (toplam vardiya), MaxTotalTravelTime, MaxTotalDistance, FixedCost (sabit araç günlüğü), CostPerUnitTime (saatlik), CostPerUnitDistance (km), OvertimeStartTime, CostPerUnitOvertime (mesai katsayısı).
  4. Breaks: Sürücü molaları. RouteName, TimeWindowStart/End, ServiceTime, MaxTravelTimeBetweenBreaks (bir mola arası en fazla kaç dakika sürebilir), MaxCumulWorkTime (toplam çalışma süresi sonrası zorunlu mola), IsPaid (mola ücretli mi).
  5. Route Zones: Bir rotanın yalnızca belirli bir poligon içinde kalması zorunluysa kullanılır. IsHardZone true ise zorunlu, false ise tercih. Bir belediye atık toplama operasyonunda her aracın kendi mahalle havzasına bağlanmasında işe yarar.
  6. Route Renewals: Aracın gün ortasında bir depoya dönüp tekrar yüklenmesi (örn dağıtımı bitince eve dönüş, yeni yüke çıkış). DepotName, RouteName, ServiceTime.
  7. Order Pairs: Birbiriyle eşli siparişler (örn ambulans hasta alımı + hastaneye bırakma); FirstOrderName, SecondOrderName, MaxTransitTime (alım ve teslim arasındaki en uzun süre).

VRP çözücüsü Standard lisansla değil Advanced lisansla gelir; bu ayrımı projeye girmeden önce kontrol etmek gerekir. Çözüm süresi sipariş sayısı ile süper-doğrusal artar; 200 sipariş 10 araç senaryosu bir saniye, 800 sipariş 30 araç senaryosu birkaç dakika sürer. Daha büyük setlerde geoprocessing ayarlarından paralel işleme açılmalıdır.

OD COST MATRIX VE CLOSEST FACILITY

Network Analyst'in iki yardımcı çözücüsü çoğu zaman ana rotalama kararına girdi sağlar. OD Cost Matrix bir kaynak noktalar setinden bir hedef noktalar setine her ikili kombinasyon için maliyet hesaplar. 50 ambulans istasyonu ve 800 mahalle merkezi için 40.000 hücrelik bir tablo döner; bu tablo "hangi mahalle hangi istasyona ortalama kaç dakika" sorusunun cevabıdır ve istasyon yer seçimi optimizasyonunda hammaddedir.

Closest Facility ise tek olay-noktasından en yakın N tane tesis bulur. 112 ambulans rotalamasında olay yeri belli olduğunda en yakın üç ambulans bulma, bir yangında en yakın iki itfaiye bulma tipik kullanımdır. Buradaki kritik nüans Travel Direction parametresidir: To Facility seçilirse mesafe olay yerinden tesise hesaplanır, From Facility seçilirse tesisten olay yerine. Şehir merkezi tek yön ağında bu iki süre eşit olmaz; ambulans için "tesisten olaya" doğru süredir, gönüllü kan bağışçı dağıtımında "olay yerine doğru" hesap yapılır.

BİR BELEDİYE ATIK TOPLAMA SENARYOSU

Bir Anadolu büyükşehir belediyesinin temizlik işleri müdürlüğü, ilçe başına ortalama 18 atık toplama kamyonu işletir. Eski operasyonda her ekip mahalle bazlı sabit rota ile çıkar; aracın hangi sokaktan başlayıp hangisinden çıkacağı şoföre bırakılmış, mesai içinde araç yüzde otuz boş geziyordu. Network Analyst tabanlı kurgu sonrası akış şu hale geldi: tüm sokaklar bir polyline ağ veri seti olarak modellendi, her sokağa "Çöp Kamyonu" travel mode'unun girip çıkması zorunlu hale getirildi. Sokakların attribute tablosuna ToplamaSikligi (haftada bir, üç, beş gün) ve ToplamSure (dakika) sütunları eklendi.

VRP çözücüsü her gün için ayrı çalıştırıldı. Orders feature class'ında her sokağın başlangıç noktası bir order olarak gösterildi, ServiceTime sokağın toplam süresi olarak girildi. Routes feature class'ında 18 kamyon tanımlandı, MaxTotalTime 480 dakika (8 saatlik vardiya), Capacity_1 olarak 12 ton (kamyon hazne hacmi) verildi. Depo olarak transfer istasyonu tanımlandı, Route Renewals tablosuna istasyon eklendi; kamyon dolduğunda transfer istasyonuna gidip boşaltıp aynı rotaya devam edebiliyordu. Üç aylık karşılaştırmada toplam kat edilen kilometre yüzde yirmi bir düştü, mesai dışına sarkma sayısı haftalık 14'ten 3'e indi. Aynı yöntem yol süpürme ve cadde yıkama operasyonları için de tekrarlandı.

MODEL NASIL DOĞRULANIR?

Kurulan modelin sahaya uyumunu doğrulamak için kısa bir test rutini önerilir. Bilinen iki nokta arasına bir Route çözdür ve sonucu Yandex veya Google Maps navigasyonuyla karşılaştır; süre ve mesafe yüzde beş toleransta uyuşuyorsa ağ modeli sağlamdır. Sapma yüzde on beşin üstündeyse sebep neredeyse her zaman üç yerden birindedir: hız öznitelikleri varsayılan kalmış, OneWay sütunu eksik doldurulmuş, sinyalize kavşak turn delay'i girilmemiş. Bu üçü düzeltilince ağ gerçeğe yakınsar.

İkinci doğrulama Stops'a kasıtlı yol dışı bir nokta ekleyerek snap toleransını test etmektir. Search Tolerance varsayılan 5000 metredir; bu şehir içi için çok geniştir, yolun yanından geçen ama teslim edilemeyecek bir nokta çözücüyü yanıltır. Kentsel projeler için 50-100 m, kırsal projeler için 500 m makul aralıklardır. Bu disiplinli kurgudan sonra Network Analyst soyut bir araç olmaktan çıkar; her sabah operasyonel kararın doğrudan üretildiği bir altyapı haline gelir.

 CADSAY