আমার কাছে একটি নির্দিষ্ট শিল্পে সমস্ত নিয়োগকারীদের অফিস অবস্থানের প্রতিনিধিত্বকারী একটি পয়েন্ট ফিচার ক্লাস রয়েছে। প্রতিটি অফিসে কর্মরত কর্মচারীদের সংখ্যা সংরক্ষণ করার জন্য বৈশিষ্ট্য শ্রেণীর একটি বৈশিষ্ট্য রয়েছে। কেউ এই তথ্যটি ব্যবহারের জন্য অনুরোধ করেছেন, সম্ভাব্য ক্ষুদ্রতম ভৌগলিক ইউনিট - সেন্সাস ব্লকগুলিতে এই ক্ষেত্রে স্থান পেয়েছেন। তবে, একটি গোপনীয়তা চুক্তি ডেটার প্রকাশ যেমন হয় তেমন প্রতিরোধ করে। পরিবর্তে, দুটি মানদণ্ড পূরণে এটি দমন করতে হবে:
- যে কোনও বহুভুজের অন্ততপক্ষে 3 জন নিয়োগকারী (পয়েন্ট) থাকতে হবে;
- বহুভুজ মধ্যে মোট কর্মসংস্থানের 80% এর বেশি কোনও একক নিয়োগকর্তা হতে পারে না।
আমি সাফল্যের সাথে একটি স্ক্রিপ্ট লিখেছি যা স্পষ্টতই আদমশুমারি ব্লকের সাথে পয়েন্টগুলিতে যোগ করে প্রত্যেকটির যোগফল এবং সর্বোচ্চ কর্মসংস্থান রেখে। দমন মানদণ্ড পূরণ না করে এমন প্রত্যেককে পতাকাযুক্ত করা হয়। (কোনও পয়েন্টযুক্ত বহুভুজগুলি পতাকাঙ্কিত করা হয় না, যেহেতু দমন করার কোনও ডেটা নেই)) আমি তারপরে প্রতিটি ব্লক গ্রুপকে পরীক্ষা করে দেখেছি যে এর মধ্যে কোনও পতাকাযুক্ত ব্লক রয়েছে কিনা তা দেখার জন্য। কেবলমাত্র আন-ফ্ল্যাগড ব্লকগুলি সমন্বিত ব্লক গ্রুপগুলি এর পরে ব্লকগুলির সাথে প্রতিস্থাপন করা হবে। ব্লক গ্রুপগুলি পর্যাপ্ত পরিমাণে ডেটা চাপা দিয়েছে কিনা তা যাচাই করার জন্য ফলস্বরূপ বৈশিষ্ট্যগুলির ক্লাসটি দমন করার মানদণ্ডের বিরুদ্ধে পরীক্ষা করা হয়।
ট্র্যাক্টের জন্য একই প্রক্রিয়াটি পুনরাবৃত্তি হয়, আমাকে ট্র্যাক্টস (কিছু পতাকাযুক্ত এবং কিছু না), ব্লক গ্রুপ এবং ব্লক (সমস্ত পতাকাবিহীন) সমন্বিত একটি ডেটাসেট রেখে আমাকে রেখে দেয়। ভৌগলিক শ্রেণিবিন্যাসের পরবর্তী অগ্রগতি হ'ল কাউন্টি, যা এই ডেটার জন্য অনুরোধকারী ব্যক্তির কোনও কাজে আসে না।
তাহলে আমার প্রশ্নটি হ'ল: বহুভুজকে যতটা সম্ভব গোষ্ঠীতে একত্রিত করার কোনও সাধারণভাবে গৃহীত পদ্ধতি রয়েছে, যাতে সকলেই কিছুটা ন্যূনতম মানদণ্ড পূরণ করে?
এখানে কিছু বিধি রয়েছে যা আমি সমষ্টিতে প্রয়োগ করতে চাই:
- যখনই সম্ভব, পতাকাযুক্ত ট্র্যাক্টগুলি কেবলমাত্র অন্য পতাকাঙ্কৃত ট্র্যাক্টের সাথে একত্রিত করা উচিত;
- পতাকাযুক্ত ট্র্যাক্টগুলি যে অন্য কারও সাথে সামঞ্জস্যপূর্ণ নয় (বা বিচ্ছিন্ন গোষ্ঠী যা এখনও মানদণ্ডগুলি পূরণ করে না) তাদের সাথে যোগ দেওয়া যেতে পারে যা ইতিমধ্যে মানদণ্ডগুলির সাথে মিলিত হয়, যদিও তাদের মধ্যে কোনও নিয়োগকর্তা নাও থাকতে পারে এমন ট্র্যাক্ট থাকতে পারে যেগুলি অন্তর্ভুক্ত করা প্রয়োজন।
- একেবারে অসম্ভব না হলে আমি কাউন্টির সীমানা অক্ষুণ্ণ রাখতে চাই (এবং আমি প্রক্রিয়া করার আগে ইনপুট বৈশিষ্ট্যগুলিকে তাদের নিজ নিজ কাউন্টিতে পৃথক করে এটি করার প্রত্যাশা করি)।
- আরকজিআইএস সরঞ্জাম বা ওপেন-সোর্স পাইথন লাইব্রেরি ব্যবহার করে সমাধানটি অবশ্যই পাইথনে থাকতে হবে।
আদর্শভাবে, কেউ আমাকে এই সমষ্টিটি বাস্তবায়নের বিদ্যমান উপায়গুলির দিকে নির্দেশ করতে পারে। যদি তা না হয় তবে আমি নিজেই অ্যালগরিদম কোড করতে পেরে খুশি, যদিও নির্দিষ্ট পদক্ষেপ / সরঞ্জামগুলির একটি তালিকা অনেক প্রশংসা করবে। সমস্যাটি আমাকে পুনঃনির্ধারণের একটি বিশেষ মামলা হিসাবে চিহ্নিত করেছে (ডিস-কনজিগিউজ বহুভুজ সহ), এবং এই লক্ষ্যে আমি পাইসএল এর আঞ্চলিককরণ অ্যালগরিদমগুলি ব্যবহার করে দেখেছি , যদিও এগুলি ব্যবহার করে মোট কর্মচারীর সর্বাধিক কত শতাংশ পরীক্ষা করা যায় তা আমার কাছে পরিষ্কার নয় is ।