সংঘর্ষ সনাক্তকরণ সর্বদা ও (এন ^ 2) নয় is
উদাহরণস্বরূপ, বলুন যে আমাদের কাছে 10x10 আকারের অবজেক্ট সহ 100x100 স্পেস রয়েছে। আমরা এই স্থানটি একটি গ্রিডের সাথে 10x10 এর কক্ষে ভাগ করতে পারি।
প্রতিটি বস্তু 4 টি গ্রিড কোষে থাকতে পারে (এটি কোনও ব্লকের সাথে সঠিকভাবে ফিট হতে পারে বা "এর মধ্যে" ঘর হতে পারে)। আমরা প্রতিটি কক্ষে বস্তুর একটি তালিকা রাখতে পারি could
আমাদের কেবল সেই কোষগুলিতে সংঘর্ষের জন্য পরীক্ষা করা দরকার। যদি গ্রিড ঘরে প্রতি সর্বাধিক সংখ্যক অবজেক্ট থাকে (বলুন, একই ব্লকের মধ্যে 4 টিরও বেশি বস্তু কখনই থাকে না), তবে প্রতিটি বস্তুর জন্য সংঘর্ষ সনাক্তকরণ হ'ল হে (1) এবং সমস্ত বস্তুর জন্য সংঘর্ষ সনাক্তকরণ হ'ল ও (এন)।
ও (এন ^ 2) জটিলতা এড়ানোর একমাত্র উপায় এটি নয়। অন্যান্য পদ্ধতি রয়েছে, অন্যান্য ব্যবহারের ক্ষেত্রে আরও পর্যাপ্ত - প্রায়শই গাছ ভিত্তিক ডেটা স্ট্রাকচার ব্যবহার করে।
আমি বর্ণিত অ্যালগরিদম এক ধরণের স্পেস পার্টিশন , তবে অন্যান্য স্পেস পার্টিশনকারী অ্যালগরিদম রয়েছে। আরও কিছু অ্যালগরিদমের জন্য স্পেস পার্টিশন সম্পর্কিত ডেটা স্ট্রাকচারের প্রকারগুলি দেখুন যা ও (এন ^ 2) সাময়িক জটিলতা এড়ায়।
বক্স 2 ডি এবং বুলেট উভয়ই পরীক্ষিত জোড়গুলির সংখ্যা হ্রাস করতে সহায়তা করে।
ম্যানুয়াল থেকে , বিভাগ 4.15:
পদার্থবিজ্ঞানের পদক্ষেপে সংঘর্ষ প্রক্রিয়াজাতকরণকে সরু-পর্যায়ে এবং ব্রড-ফেজে ভাগ করা যায়। সংকীর্ণ পর্যায়ে আমরা আকারের জোড়াগুলির মধ্যে যোগাযোগ পয়েন্টগুলি গণনা করি। আমাদের এন আকার আছে কল্পনা করুন। নিষ্ঠুর শক্তি ব্যবহার করে, আমাদের N * N / 2 জোড়ার সংকীর্ণ-পর্যায় সম্পাদন করা প্রয়োজন।
বি 2 ব্রডফেজ শ্রেণি জুড়ি পরিচালনার জন্য গতিশীল ট্রি ব্যবহার করে এই বোঝা হ্রাস করে। এটি সরু-পর্যায়ে কলগুলির সংখ্যা হ্রাস করে greatly
সাধারণত আপনি সরাসরি ব্রড-ফেজের সাথে ইন্টারঅ্যাক্ট করেন না। পরিবর্তে, বক্স 2 ডি অভ্যন্তরীণভাবে একটি বিস্তৃত-পর্যায় তৈরি এবং পরিচালনা করে। এছাড়াও, বি 2 ব্রডফেজ বক্স 2 ডি এর সিমুলেশন লুপটি মাথায় রেখে তৈরি করা হয়েছে, সুতরাং এটি সম্ভবত অন্যান্য ব্যবহারের ক্ষেত্রে উপযুক্ত নয়।
থেকে বুলেট উইকি :
বিভিন্ন ধরণের ব্রডফেজ অ্যালগরিদম রয়েছে যা নিষ্পাপ ও (এন ^ 2) অ্যালগরিদমকে উন্নত করে যা কেবল জোড়গুলির সম্পূর্ণ তালিকা দেয়। এই অনুকূলিত ব্রডফেসগুলি কখনও কখনও আরও বেশি অ-সংঘর্ষযুক্ত জোড়গুলির পরিচয় দেয় তবে এটি তাদের সাধারণত উন্নত সম্পাদনের সময় দ্বারা অফসেট হয়। এগুলির পারফরম্যান্সের বৈশিষ্ট্য রয়েছে এবং সমস্ত পরিস্থিতিতে অন্যরা কাউকে ছাড়িয়ে যায় না।
গতিশীল এএবিবি গাছ
বুলেট বিটিডিবিভিটিড্রোডফেস এটি বাস্তবায়ন করেছে।
নাম অনুসারে, এটি একটি গতিশীল এএবিবি ট্রি । এই ব্রডফেসের একটি দরকারী বৈশিষ্ট্য হ'ল কাঠামোটি পৃথিবীর মাত্রা এবং এর বিষয়বস্তুগুলির সাথে গতিশীলভাবে খাপ খায়। এটি খুব ভালভাবে অনুকূলিত হয়েছে এবং একটি খুব সাধারণ সাধারণ উদ্দেশ্য ব্রডফেজ। এটি গতিশীল দুনিয়াগুলি পরিচালনা করে যেখানে অনেকগুলি বস্তু গতিতে রয়েছে এবং অবজেক্ট সংযোজন এবং অপসারণ এসএপি এর চেয়ে দ্রুত is
সুইপ এবং ছাঁটাই (এসএপি)
বুলেটে, এটি ক্লাসের অক্ষরূপ রয়েছে। এটি একটি ভাল সাধারণ উদ্দেশ্য ব্রডফেজও, এর সীমাবদ্ধতার সাথে এটির জন্য একটি নির্ধারিত বিশ্ব আকারের প্রয়োজন, যা আগেই জানা ছিল। এই ব্রডফেজটিতে সাধারণ গতিশীল জগতের জন্য সেরা পারফরম্যান্স রয়েছে, যেখানে বেশিরভাগ বস্তুর অল্প বা গতি নেই। বিটিএক্সিসসুইপ 3 এবং বিটি 32 অ্যাকসিসওয়েপি 3 উভয় অক্ষরের প্রারম্ভিক এবং শেষের পয়েন্টগুলি পারফরম্যান্সের উন্নতির জন্য ভাসমান পয়েন্ট সংখ্যার পরিবর্তে পূর্ণসংখ্যার হিসাবে মাপ দেয়।
নিম্নলিখিত লিঙ্কটি ব্রডফেজের একটি সাধারণ ভূমিকা এবং সুইপ এবং প্রুন অ্যালগরিদমের বিবরণ (যদিও এটি এটিকে "বাছাই করুন এবং স্যুইপ" বলেছেন):
http://www.ziggyware.com/readarticle.php?article_id=128
এছাড়াও, উইকিপিডিয়া পৃষ্ঠাটি একবার দেখুন:
http://en.wikipedia.org/wiki/Sweep_and_prune