জিআইএস ডাটাবেসে নতুন রাউটিং অ্যালগরিদমগুলি (ডিজকস্ট্রা, এ * এর চেয়েও বেশি) রয়েছে?


46

মত কাজ আছে একটি * জন্য পৌঁছানো মাইক্রোসফট গবেষক এবং থেকে হাইওয়ে শ্রেণীবিন্যাসের সন্ডার্স এবং Schtolz (যদি আমি নাম সঠিকভাবে বানান) থেকে দ্বারা কার্লস্রূ Uni । এগুলি উভয়ই গণনাগুলির আদেশ অনেক হ্রাস করে, এবং বড় গ্রাফগুলিতে হাজার বার গতি বাড়ায় (লিঙ্কযুক্ত নথিতে ফলাফল দেখুন)। পরবর্তী কাজটি ওপেন সোর্স রাউটিং মেশিনের দিকে পরিচালিত করে , যা দুর্ভাগ্যজনকভাবে যথেষ্ট জনপ্রিয় নয় এবং অভিযোজিত নয় (আমি চেষ্টা করেও এটি সংকলন করতে পারিনি)।

একই সময়ে, আমি যে ডাবগুলি চেষ্টা করেছিলাম, স্প্যাটালাইট এবং পিজারাউটিং, তাদের ডক্স অনুসারে, কেবলমাত্র ডিজকস্ট্রা এবং এ * অ্যালগোরিদম অফার করে। এমনকি আমি দ্বি-দিকনির্দেশক অনুসন্ধানও দেখিনি, যা আমার অভিজ্ঞতায় দুইবার গণনার সময় বাঁচায়।

ডাটাবেস বা অন্যান্য অ্যাপ্লিকেশনগুলির জন্য আরও ভাল অ্যালগরিদম আছে?


1
আপনি কি আপনার প্রশ্নটি পিজআউটিং ব্যবহারকারী বা বিকাশকারীদের ইমেল তালিকায় পোস্ট করেছেন? আপনি সরাসরি সম্প্রদায়টির থেকে আরও ভাল প্রতিক্রিয়া পেতে পারেন। ব্যবহারকারীর তালিকা: ( list.osgeo.org/mailman/listinfo/pgrouting-users ) বিকাশকারী তালিকা: ( list.osgeo.org/mailman/listinfo/pgrouting-dev )
রায়ানডালটন

+1 দুর্দান্ত প্রশ্ন। দিকনির্দেশগুলি পাওয়ার জন্য অ্যালগরিদম গুগল কী ব্যবহার করে তা অবাক করি । সম্পর্কিত প্রশ্ন এখানে
কুইকেনডাল

1
যেহেতু গুগল কার্লসরুহে টিমকে সমর্থন করেছে ( algo2.iti.uni-karlsruhe.de/english/index.php ) আমি মনে করি তারা তাদের সফ্টওয়্যারটি ব্যবহার করে যা মূলত ওপেন সোর্স রাউটিং মেশিন।
কুলেব্রন

উত্তর:


23

সত্যটি হ'ল বেশিরভাগ লোক এ * অ্যালগোরিদমের একটি কাস্টম প্রকরণ ব্যবহার করেন । আপনি এটি বেশিরভাগ "বড় ছেলেরা" জুড়ে দেখতে পাবেন (তারা কোন পাবলিক ফোরামে কারা তা আমি বলতে পারি না, তবে আমি আপনাকে বলতে পারি যে আপনি সম্ভবত তাদের একটি ব্যবহার করেছেন - গ্যারান্টিযুক্ত), যেখানে হিউরিস্টিক্সের পরিবর্তন রয়েছে তারা যে ডেটাসেটগুলি ব্যবহার করে তার উপর খুব নির্ভরশীল।

আপনি ইতিমধ্যে pgrouting উল্লেখ করেছেন , যা আমি একটি "traditional তিহ্যবাহী " বিকল্প বিবেচনা করব। সাধারণ রাউটিং অ্যালগরিদম করার জন্য এবং বেশিরভাগ সমস্যার জন্য এটি ভাল। এটি ব্যবহার করাও সহজ এবং এর ব্যাকএন্ডে একটি traditionalতিহ্যবাহী ডাটাবেস ব্যবহার করে।

তা সত্ত্বেও, এটি আপনি যে স্কেল এবং ধরণের সমস্যার সমাধান করতে চেষ্টা করছেন তার উপর নির্ভর করে এবং রাউটিং একটি গ্রাফ সমস্যা।

আবার, "বড় ছেলেরা" সাধারণত তাদের গ্রাফের সাথে সম্পর্কিত উদাহরণস্বরূপ প্রচুর ডেটা রাখে (উদাহরণস্বরূপ, ট্র্যাফিক ডেটা, বাস রুট, হাঁটার পথ) যা রাউটিং অ্যালগরিদমকে প্রভাবিত করে। এগুলি মাল্টি-মডেল ট্রিপ পরিকল্পনাকারী হিসাবে পরিচিত (যেখানে আপনার কাছে "মোড" পরিকল্পনা করার বিকল্প রয়েছে - বাইকের কোনও পাথ নেই - কেবল পাবলিক ট্রানজিট - এই জাতীয় জিনিস)। যদি আপনি পদব্রজে ভ্রমণ কিভাবে ট্রিপ পরিকল্পনা একটি সময় স্পর্শকাতর বিষয়ে (যেমন হয়ে মনে করতে পারেন ফিরে কয়েক প্রান্ত পিছনে, আপনি পাতাল রেল যে আপনি আপনার গন্তব্য লাগে ধরতে সক্ষম হবে এগিয়ে চেয়ে যদি আপনি শুধু প্রান্ত এগিয়ে নেভিগেট করার চেষ্টা অনেক দ্রুত সর্বনিম্ন ব্যয় ব্যবহার করে)।

"বড় ছেলেরা" প্রতি সেম্পরায় একটি aতিহ্যবাহী ডাটাবেসে তাদের ডেটা সঞ্চয় করে না, তারা প্রাক-গণিত গ্রাফ ব্যবহার করে (হ্যাডোপ / ম্যাপ্রেডুস ক্লাস্টারগুলিকে স্বাগতম!)। আপনি যেমন কল্পনা করতে পারেন, এই গ্রাফগুলি সত্যই বড় হয়ে উঠেছে, সুতরাং সংলগ্ন গ্রাফগুলির প্রান্তগুলি কীভাবে সংযুক্ত করবেন তা জেনে রাখা একটি চ্যালেঞ্জ হতে পারে।

যাইহোক, আমি আপনাকে কয়েকটি মাল্টি-মডেল রাউটিং গ্রাফ প্রকল্পগুলি দেখার পরামর্শ দিচ্ছি:

গ্রাফারভার মনে আসে। প্রচুর ডকুমেন্টেশন নয় তবে প্রচুর খাঁটি কোডিং দুর্দান্ততা (এএফএইআইকি, আমি বিশ্বাস করি ম্যাপকুয়েস্ট তাদের কিছু রাউটিং পণ্যের জন্য এই প্রকল্পের একটি প্রকরণ ব্যবহার করে)।

আরেকটি বিকল্প হ'ল ওপেনট্রিপপ্ল্যানার যার পিছনে প্রচুর স্মার্ট লোক রয়েছে (গ্রাফসারের লোকগুলি সহ)।


15

এটি আরও নতুন কিনা তা নিশ্চিত নন তবে পিজারাউটিংয়ের শ্যুটিং-স্টার অ্যালগরিদম রয়েছে :

শুটিং-স্টার অ্যালগরিদম হ'ল পিগআরটিংয়ের সবচেয়ে সংক্ষিপ্ত পথ অ্যালগরিদম। এর বৈশিষ্ট্যটি হ'ল এটি লিঙ্ক থেকে অন্য লিঙ্কের দিকে যাত্রা করে, ডিজকস্ট্রা এবং এ-স্টার অ্যালগরিদমগুলি যেমনটি শীর্ষস্থান থেকে ভারটিেক্সে চলে না। উদাহরণস্বরূপ লিঙ্কগুলির মধ্যে সম্পর্কের সংজ্ঞা দেওয়া সম্ভব করে তোলে এবং এটি "সমান্তরাল লিঙ্কগুলি" এর মতো কিছু অন্যান্য ভার্টেক্স ভিত্তিক অ্যালগরিদম সমস্যা সমাধান করে, যার উত্স এবং লক্ষ্যমাত্রা রয়েছে তবে বিভিন্ন ব্যয় রয়েছে।

ইএসআরআই এর নেটওয়ার্ক অ্যানালিস্ট এক্সটেনশান সমাধানের সময় সীমাবদ্ধ করার জন্য আপনার উল্লিখিত শ্রেণিবিন্যাসকে ব্যবহার করে :

বিপুল সংখ্যক প্রান্তের সন্ধান করা দরকার বলে দেশব্যাপী নেটওয়ার্ক ডেটাসেটে সঠিকতম সংক্ষিপ্ত পথটি সন্ধান করা সময়সাপেক্ষ। কর্মক্ষমতা উন্নত করতে, নেটওয়ার্ক ডেটাসেটগুলি একটি পরিবহন ব্যবস্থায় প্রাকৃতিক শ্রেণিবিন্যাসের মডেল করতে পারে যেখানে একটি আন্তঃরাজ্য মহাসড়কে গাড়ি চালানো স্থানীয় রাস্তায় গাড়ি চালানোর চেয়ে পছন্দনীয়। একবার একটি শ্রেণিবদ্ধ নেটওয়ার্ক তৈরি হয়ে গেলে, দ্বিপাক্ষিক ডিজজস্ট্রার একটি পরিবর্তন একটি উত্স এবং গন্তব্যের মধ্যে একটি রুট গণনা করতে ব্যবহৃত হয়।

ইএসআরআই সাইটে এই পদ্ধতির উদাহরণ সহ একটি খুব বিশদ সাদা কাগজ রয়েছে - তবে আপনাকে ডাউনলোড করতে লগ ইন করতে হবে (আর্কজিআইএস নেটওয়ার্ক বিশ্লেষক হোয়াইট পেপারে হায়ারার্কিকাল রুট)।


11

সংকোচন শ্রেণীক্রম একটি খুব দ্রুত আলগোরিদিম হল:

এই ক্যারিয়ারটি কার্যকর করার সময় এই অ্যালগরিদমটি র‌্যাম বান্ধব (একটি চুক্তিবদ্ধ গ্রাফ ধরে রাখতে আরও কিছু র‌্যাম প্রয়োজন পাশাপাশি বিশাল প্রাকপ্রসেসিং)

কিছু অন্যান্য অ্যালগরিদম রয়েছে - এতে জনসাধারণের ট্রানজিট রুট সমাধান করে:

মাইক্রোসফ্ট কিছু গবেষণা করছে:

(ভাল, ড্যানিয়েল ডিলিংও কার্লসরুহে থেকে এসেছেন)

আপনি উপলব্ধ অ্যালগোরিদমগুলির একটি দুর্দান্ত ভূমিকা এবং ওভারভিউ পেতে পারেন:

সতর্কতা: জার্মান (!) বক্তৃতা তবে কমপক্ষে শিরোনামগুলি আপনাকে আরও তথ্য (ALT, আর্ক-ফ্ল্যাগস, CHASE, ...) বা সংযুক্ত সাহিত্য পেতে সহায়তা করতে পারে!

হালনাগাদ

GraphHopper এখন সংকোচন শ্রেণীবিভাগ ও অন্যান্য আলগোরিদিম প্রয়োগ, এছাড়াও আপনি চেষ্টা করে দেখতে পারেন ডেমো

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.