অস্পষ্টতম কম-মোটা সাধারণ পার্টিশন অ্যালগরিদম


9

একটি আকারের দুটি পৃথক পার্টিশন দেওয়া হয়েছে (যুক্তির স্বার্থে, একটি দেশের দুটি পৃথক প্রশাসনিক বিভাগ), আমি কীভাবে একটি নতুন বিভাজন পেতে পারি যেখানে এই দুটি পার্টিশনই ফিট করে, (এবং অনুকূলিতকরণ) কিছু ত্রুটি মঞ্জুর করে?

উদাহরণস্বরূপ, ত্রুটি উপেক্ষা করে, আমি একটি অ্যালগরিদম চাই যা এটি করে:

অ-অস্পষ্ট সংস্করণ

সম্ভবত এটি নির্ধারিত পদগুলিতে এটি প্রকাশ করতে সহায়তা করে। নিম্নলিখিত নম্বর ব্যবহার করে:

আমি উপরের পার্টিশনগুলি এইভাবে প্রকাশ করতে পারি:

এ = {{1}, {2}, {3,4,7,8}, {5}, {6}, {9,10,13,14}, {11}, {12}, {15 , {16}}

বি = {{1,2,5,6}, {3}, {4}, {7}, {8}, {9}, {10}, {13}, {14}, {11,15 , {12,16}}

একটি ডট বি = {{1,2,5,6}, {3,4,7,8}, {9,10,13,14}, {11,15}, {12,16}}

এবং একটি ডট বি তৈরির জন্য অ্যালগরিদমটি সোজা মনে হয় (যেমন, যদি দুটি উপাদান দুটি এ-বি-তে বিভাজনে থাকে তবে তারা বি (এ) -এর পার্টিশনগুলি মার্জ করে - এ এবং বি সমান না হওয়া পর্যন্ত পুনরাবৃত্তি করুন)।

তবে এখন কল্পনা করুন যে এই কয়েকটি লাইন দুটি পার্টিশনের মধ্যে কিছুটা পৃথক, যাতে এই নিখুঁত উত্তরটি সম্ভব না হয় এবং পরিবর্তে আমি চাই যে অনুকূল উত্তরটি কিছু ত্রুটির মানদণ্ডকে হ্রাস করতে পারে।

একটি নতুন উদাহরণ নিন:

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

প্রকৃত উত্তরটি তারপরে উপরের সারিতে, মধ্য কলাম বা মাঝারি সারিতে, মধ্য কলামে - বা এর মধ্যে কিছু রয়েছে এমন পার্টিশন কম গুরুত্বপূর্ণ।


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

1
ধন্যবাদ, আমি এটি বিভ্রান্ত করেছি। আমি যেটা আমার কাছে মনে করি তা হ'ল সেরা সাধারণ পার্টিশন, বা সম্ভবত "অন্তত মোটা"।
ইকোনএন্ড্রু

সেক্ষেত্রে ফলাফলটি আপনি যেটি আঁকেন তার চেয়ে খুব আলাদা দেখাচ্ছে। এটি স্কোয়ারের 4 x 4 দাবাবোর্ড হবে। এই একটি উদাহরণ থেকে আপনি যে নিয়মটি অনুসরণ করতে চান তা হ্রাস করতে অক্ষম। হতে পারে আপনি সমস্ত ইনপুট বৈশিষ্ট্যগুলিতে সমস্ত কিনারা সাধারণ রাখার চেষ্টা করছেন ? আপনি যে আসল সমস্যাটি সমাধান করার চেষ্টা করছেন তা কী? আপনার প্রশ্নটি কী হওয়া উচিত তা বুঝতে আমাদের সহায়তা করার জন্য আপনি কি একটি দৃ concrete় উদাহরণ প্রদান করতে পারেন ?
হোবার

আমি অনেক বিশদ বিবরণ করেছি - সম্ভবত এটি সাহায্য করবে। এটি সত্য যে অস্পষ্ট ক্ষেত্রে আমি আমার প্রশ্নটি সুনির্দিষ্টভাবে নির্দিষ্ট করতে পারি না, তবে আমি মনে করি সঠিক ক্ষেত্রে আমি কী বলতে চাইছি তা সঠিকভাবে জানি (যদিও আমি এটি ভালভাবে প্রকাশ করছি না)।
একনএন্ড্রু

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

উত্তর:


2

বহুভুজের সীমানার পার্থক্যটির সীমানার মধ্যে প্রতিসারণের পার্থক্যের পার্থক্যটি মূল্যায়ন করে বা এটি প্রতীকীভাবে প্রকাশ করে আপনি এটি করতে পারেন:

Difference(a, SymDifference(a, b))

জ্যামিতিগুলি a এবং b নিন , পরবর্তী দুটি লাইন এবং চিত্রের উপর মাল্টিলাইনস্ট্রিংস হিসাবে প্রকাশ করুন:

MULTILINESTRING((0 300,50 300,50 250,0 250,0 300),(50 300,100 300,100 250,50 250,50 300),(0 250,50 250,50 200,0 200,0 250),(50 250,100 250,100 200,50 200,50 250),(100 300,200 300,200 200,100 200,100 300),(0 200,100 200,100 100,0 100,0 200),(100 200,150 200,150 150,100 150,100 200),(150 200,200 200,200 150,150 150,150 200),(100 150,150 150,150 100,100 100,100 150),(150 150,200 150,200 100,150 100,150 150))
MULTILINESTRING((0 300,100 300,100 200,0 200,0 300),(100 300,150 300,150 250,100 250,100 300),(150 300,200 300,200 250,150 250,150 300),(100 250,150 250,150 200,100 200,100 250),(150 250,200 250,200 200,150 200,150 250),(0 200,50 200,50 150,0 150,0 200),(50 200,100 200,100 150,50 150,50 200),(0 150,50 150,50 100,0 100,0 150),(50 150,100 150,100 100,50 100,50 150),(100 200,150 200,150 100,100 100,100 200),(150 200,200 200,200 100,150 100,150 200))

একটি খ

প্রতিসম পার্থক্য, যেখানে a এবং b এর অংশগুলি ছেদ করে না, তা হ'ল:

MULTILINESTRING((50 300,50 250),(50 250,0 250),(100 250,50 250),(50 250,50 200),(150 150,100 150),(200 150,150 150),(150 300,150 250),(150 250,100 250),(200 250,150 250),(150 250,150 200),(50 200,50 150),(50 150,0 150),(100 150,50 150),(50 150,50 100))

symdiff

এবং অবশেষে, বা এবং প্রতিসম পার্থক্যের মধ্যে পার্থক্যটি মূল্যায়ন করুন :

MULTILINESTRING((0 300,50 300),(0 250,0 300),(50 300,100 300),(100 300,100 250),(50 200,0 200),(0 200,0 250),(100 250,100 200),(100 200,50 200),(100 300,150 300),(150 300,200 300,200 250),(200 250,200 200),(200 200,150 200),(150 200,100 200),(100 200,100 150),(100 150,100 100),(100 100,50 100),(50 100,0 100,0 150),(0 150,0 200),(150 200,150 150),(200 200,200 150),(150 150,150 100),(150 100,100 100),(200 150,200 100,150 100))

diff_symdiff

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

SELECT
  ST_AsText(ST_CollectionHomogenize(ST_Polygonize(
    ST_Difference(ST_Boundary(A), ST_SymDifference(ST_Boundary(A), ST_Boundary(B)))
  ))) AS result
FROM (
  SELECT 'MULTIPOLYGON(((0 300,50 300,50 250,0 250,0 300)),((50 300,100 300,100 250,50 250,50 300)),((0 250,50 250,50 200,0 200,0 250)),((50 250,100 250,100 200,50 200,50 250)),((100 300,200 300,200 200,100 200,100 300)),((0 200,100 200,100 100,0 100,0 200)),((100 200,150 200,150 150,100 150,100 200)),((150 200,200 200,200 150,150 150,150 200)),((100 150,150 150,150 100,100 100,100 150)),((150 150,200 150,200 100,150 100,150 150)))'::geometry AS a,
    'MULTIPOLYGON(((0 300,100 300,100 200,0 200,0 300)),((100 300,150 300,150 250,100 250,100 300)),((150 300,200 300,200 250,150 250,150 300)),((100 250,150 250,150 200,100 200,100 250)),((150 250,200 250,200 200,150 200,150 250)),((0 200,50 200,50 150,0 150,0 200)),((50 200,100 200,100 150,50 150,50 200)),((0 150,50 150,50 100,0 100,0 150)),((50 150,100 150,100 100,50 100,50 150)),((100 200,150 200,150 100,100 100,100 200)),((150 200,200 200,200 100,150 100,150 200)))'::geometry AS b
) AS f;
                               result
--------------------------------------------------------------------------------
MULTIPOLYGON(((0 300,50 300,100 300,100 250,100 200,50 200,0 200,0 250,0 300)),((100 250,100 300,150 300,200 300,200 250,200 200,150 200,100 200,100 250)),((0 200,50 200,100 200,100 150,100 100,50 100,0 100,0 150,0 200)),((150 200,200 200,200 150,200 100,150 100,150 150,150 200)),((100 200,150 200,150 150,150 100,100 100,100 150,100 200)))

নোট যে আমি আছে না ব্যাপকভাবে এই পদ্ধতি পরীক্ষিত, তাই একটি আদ্যস্থল হিসাবে ধারনা এই নিতে।


আপনি কীভাবে এই অ্যালগরিদমটি সম্পর্কে জিজ্ঞাসা করা সমস্যাটির अस्पष्ट সংস্করণ পরিচালনা করেন তা অন্যথায় কীভাবে স্পষ্ট করে বলতে পারেন, বা অন্যথায় কীভাবে এটি সেই সংস্করণে অভিযোজিত হতে পারে?
হোবার

0

ত্রুটিমুক্ত অ্যালগোরিদম।

প্রথম সেট: এখানে চিত্র বর্ণনা লিখুন দ্বিতীয় সেট: এখানে চিত্র বর্ণনা লিখুন

2 সেট মার্জ করুন এবং অঞ্চল অনুসারে উত্থানের ক্রমে সাজান। মোট ক্ষেত্র = মোট ক্ষেত্রের (এই ক্ষেত্রে 16) পৌঁছানো অবধি সারণীতে সারণি (শীর্ষ => নীচে) নির্বাচন করুন:

এখানে চিত্র বর্ণনা লিখুন

নির্বাচিত সারি আপনার উত্তর দেয়:

এখানে চিত্র বর্ণনা লিখুন

মানদণ্ডগুলি জমে থাকা অঞ্চল এবং প্রকৃত মোটের মধ্যে পার্থক্য হতে চলেছে।


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

সঠিক। অতিরিক্ত পদক্ষেপ ক) আর্কগিস ইউনিয়ন সরঞ্জামের ক্ষেত্রে ইউনিয়ন ডেটাসেট খ) মার্জড টেবিল থেকে প্রথম বৃহত্তম গ্রহণ এবং অভ্যন্তরের অন্যদের ভগ্নাংশ পরীক্ষা করুন) ভগ্নাংশ বৃহত্তর চৌম্বক সহ অন্যদের অপসারণ করুন, যেমন 90%। এটা কেমন?
ফেলিক্সআইপি

আমি জানি না, কারণ প্রশ্নটি আসলেই কী জিজ্ঞাসা করছে তা আমি বুঝতে পারি নি।
হোবার

বৃহত্তম সম্ভাব্য ব্লক ব্যবহার করে অঞ্চল তৈরি করুন। এটি আমার প্রশ্নের বোঝাপড়া
ফেলিক্সআইপি

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