একটি উপযুক্ত রাউটিং ইঞ্জিন চয়ন করতে সহায়তা করুন


16

আমি একটি রুট প্ল্যানিং সিস্টেম তৈরি করছি, তবে আমি কী অন্তর্নিহিত রুটিং ইঞ্জিনটি ব্যবহার করব তা এখনও সিদ্ধান্ত নিতে হবে। এখনও অবধি আমি পিগ্রাউটিং এবং নিও ৪ জে পেয়েছি।

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

আমার মূল লক্ষ্যটি হ'ল দূরত্বে = ব্যয় হয় এমন একটি স্টার অ্যালগরিদম ব্যবহার করে এই নেটওয়ার্কের রুটগুলি গণনা করা।

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

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

আশা করি কেউ আমাকে কোন সিস্টেমটি চয়ন করবেন সে সম্পর্কে কিছু তথ্য দিতে পারেন। Neo4j, pgrouting বা অন্য কোনও সিস্টেম।


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

প্রথমে, আমি একটি ওপেনসোর্স জমি ব্যবহারের মডেলটি ইউরব্যানসিমের দিকে নজর দেওয়ার পরামর্শ দেব । আপনার রাউটিং প্রশ্ন হিসাবে, যদি এটি অ্যাপ্লিকেশনটির পরিকল্পনা করে থাকে তবে আমি কার্যকারিতা এবং ব্যবহারকারী ইন্টারফেসের জন্য প্রথমে ট্রান্সক্যাড, কিউব, প্লানার বা ইএমএমই / 2 এর মতো সফ্টওয়্যারটি দেখার পরামর্শ দিচ্ছি। তারা সাধারণত তাদের সফ্টওয়্যারটির 1 ঘন্টা বা 2 ঘন্টা ডেমো সিডি দেয় (এটির জন্য অনুভূতি পেতে আপনি একটি ঘন্টা বা দুই ঘন্টা চালাতে পারেন)। আপনি যদি অনলাইন ব্যবহার বা ডেস্কটপ ব্যবহারের জন্য কিছু তৈরি করতে চান, তবে পিজআরটিং দেখুন; যাইহোক, অভিজ্ঞতা থেকে, কখনও কখনও, ওয়ার্কশপ / টিউটোরিয়াল এটি চিত্রায়িত করার মতো সহজ নয়।
dassouki

আমি একটি তারকা কাজের সাথে pgrouting পেয়েছিলাম এবং এটি দুর্দান্ত! এটি আমার প্রথম 3 টি প্রশ্নের উত্তর হ্যাঁ। তবুও আমি আশ্চর্য হয়েছি যে এখানে কেউ ভার্ভোজ নেভিগেশন দিকনির্দেশের উত্পন্ন সম্পর্কে কিছু জানে কিনা। এখানে কি এমন কিছু সরঞ্জাম রয়েছে যা গণনা করা রুটের আউটপুট থেকে ভার্বোস দিকনির্দেশ ("200 মি বাঁক পরে," ইত্যাদি) উত্পন্ন করে যা পিগ্রাউটিংয়ে সহযোগিতা করে?
এমআরজি

উত্তর:


8

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

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

PgRouting এ এই সমস্ত সমস্যা নেই। স্মৃতি এ জাতীয় সমস্যা নয় তবে একযোগে অনুসন্ধানগুলি মেমরির প্রয়োজনীয় পরিমাণ বাড়ায় increase উদাহরণস্বরূপ, আপনার যদি দুটি সমবর্তী অনুরোধ থাকে তবে দ্বিগুণ পরিমাণ মেমরির প্রয়োজন। এটি কোনও জার্মানি ওএসএম ডেটাসেটের জন্যও কোনও সমস্যা ছিল না, pgRouting কোনও সমসাময়িক অনুরোধ ছাড়াই কোনও সমস্যা ছাড়াই রাউটেড।

পারফরম্যান্স: বেশিরভাগ ক্ষেত্রে, নিও 4 জে পিজিআউটিংকে ছাড়িয়ে যায়। তবে কেবলমাত্র প্রদত্ত ডেটাসেটের জন্য পর্যাপ্ত মেমরি থাকলে এবং সমস্ত নোড এবং সম্পর্কগুলি মেমরিতে থাকলে (হট স্টার্ট)। কর্মক্ষমতা বৃদ্ধি বা হ্রাস অনেকগুলি কারণের উপর নির্ভর করে তবে বেশিরভাগ উত্স এবং লক্ষ্য নোডের মধ্যে নেটওয়ার্ক এবং দূরত্বের (হप्स) আকারের উপর নির্ভর করে।

আপনার নেটওয়ার্কের আকারটি বেশ ছোট, তাই আপনার স্মৃতি নিয়ে কোনও সমস্যা হওয়া উচিত নয়। সম্ভবত Neo4j একটি খারাপ পছন্দ নয় তবে আপনাকে স্ট্যান্ডার্ড রিলেশন ডেটাবেসের তুলনায় "" সামান্য "আলাদা ডেটা মডেলের সাথে মানিয়ে নিতে হবে।

আপনার প্রশ্নের উত্তর দিতে:

  • পিজিআরটিংয়ে আপনাকে স্কয়ারে আষ্টার প্রয়োগের বিষয়ে চিন্তা করতে হবে না, যা অলরেডি বাস্তবায়িত হয়েছিল।
  • হ্যাঁ, পিজিআউটিং আপনাকে নোড এবং প্রান্তগুলির তালিকা দিতে পারে
  • আমি মনে করি না যে পিজিআউটিং আপনাকে ক্যোয়ারির আশেপাশে কিছু কাস্টম কাজ দিয়ে এমন তথ্য দিতে পারে। তবে সম্ভবত আমি ভুল, হয়তো কেউ এটি করেছে এবং এই প্রশ্ন সম্পর্কে আপনাকে আরও সহায়তা করতে পারে।

এটি আপনাকে সরাসরি সাহায্য করবে কিনা তা আমি জানি না, তবে আমি খুঁজে পাওয়া দ্রুততম রাউটিং সার্ভারগুলির মধ্যে একটি হ'ল ওসএম 2 পিও । এটি ওএসএম ডেটাসেটের সাথে কাজ করে এবং বেশ দ্রুত। বর্তমানে কেবলমাত্র ডিজকস্ট্রা বাস্তবায়িত হয়েছে তবে বিকাশকারী আসতারও ঘোষণা করেছিলেন। আমি আশা করি এর মধ্যে কিছু আপনাকে সহায়তা করবে। :)


এমন কারও কাছ থেকে শুনে ভাল লাগবে যিনি আসলে উভয় সিস্টেমই পরীক্ষা করেছেন। ইতিমধ্যে আমার কাছে পিগ্রাউটিংয়ের সাথে আরও অনেক অভিজ্ঞতা আছে। আমি লক্ষ্য করেছি যে পিগ্রাউটিং প্রতিটি ক্যোয়ারীর জন্য পুরো গ্রাফ তৈরি করে এবং এটি বৃহত্তর নেটওয়ার্কগুলির জন্য (জার্মানি আকার) ধীরে ধীরে ধীরে ধীরে হয়ে যায়, তাই আমি দেখছি না যে পিগ্রাউটিংয়ের কারণে নিও 4 জনের চেয়ে কম মেমরির প্রয়োজন হবে কেন। আমার পরবর্তী চেষ্টাটি হ'ল রিয়েল টাইম রাউটিংয়ের জন্য দ্রুত প্রতিক্রিয়া নিশ্চিত করার জন্য পুরো গ্রাফটি স্থিতিশীলভাবে রাম এবং সেই পথে (neo4j, nx_spatial ইত্যাদি সহ) পেতে হবে।
এমআরজি

হ্যাঁ, গ্রাফটি আরও বৃহত্তর হবে, আরও বেশি পার্থক্য হ'ল পিগ্রাউটিং এবং নিও 4 জনের মধ্যে। সম্ভবত আপনি যদি পুরো গ্রাফটিকে মেমরির মধ্যে রাখেন তবে এটি দ্রুততম সমাধান হবে, এ সম্পর্কে কোনও প্রশ্ন নেই। যখন সমস্ত গ্রাফ মেমরিতে লোড হয় তখন নিও 4 জে বেশ দ্রুত। এনএক্স_স্পেসিয়াল সম্পর্কে জানেন না, আমি এটি পরীক্ষা করি নি, তবে সম্ভবত আমিও করব। আমি বিশ্বাস করি যে এটি নিও 4 জেও ছাড়িয়ে যেতে পারে। তবে এই সমাধানটি যদি আপনার আবেদনের জন্য গ্রহণযোগ্য হয় তবে তা ভাল।
মারিও মিলার

1
@ এমআরজি নিশ্চিত না যে এটি এখনও আপনার জন্য সমস্যা কিনা তবে সেখানে ওএসআরএম (সি ++) এবং গ্রাফহপার (জাভা) রয়েছে। উভয়ই স্কেল ওয়ার্ল্ড ওয়াইড গ্রাফ এবং যেমন গ্রাফহপার জার্মানির জন্য 1 গিগাবাইটের অধীনে প্রয়োজন (যেখানে আমি এর লেখক)
কারসেল

কারসেল, তথ্যের জন্য আপনাকে ধন্যবাদ! আমি ইতিমধ্যে ওএসআরএম খুঁজে পেয়েছি, তবে গ্রাফহপারটি আমার জন্য নতুন।
এমআরজি

0

আপনি আমাদের আরডাব্লু নেট 4 প্যাকেজ (www.routeware.dk) এ একবার দেখতে পারেন। এটি কোনও এসএইচপি ফাইল থেকে সরাসরি * ব্যবহার করে এত সংক্ষিপ্ততম পাথ গণনা করতে পারে। আপনার প্রয়োজনের জন্য বেসিক প্যাকেজটি 500 ডলারে যথেষ্ট বলে মনে হচ্ছে।


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