পয়েন্টের পরিমাণে n এর জন্য ত্রিপক্ষীয় অ্যালগরিদম


27

আমি অ্যালগরিদম যে centroid নিরূপণ করতে পারেন এটি প্রয়োজন একটি চিত্রে থেকে (মাধ্যাকর্ষণ কেন্দ্র, জ্যামিতিক কেন্দ্র ভরের কেন্দ্র ওরফে) যেখানে চেনাশোনা T1 এর, T2, এই T3, T4, T5 ও, .., TN ছেদ এবং লাইনের দৈর্ঘ্য আর centroid থেকে উল্লিখিত চিত্রের সবচেয়ে দীর্ঘতম কোণ

নিম্নলিখিত তথ্য দেওয়া হয়:

  • টি 1 অক্ষাংশ = 56.999883 দ্রাঘিমাংশ = 24.144473 ব্যাসার্ধ = 943
  • টি 2 অক্ষাংশ = 57.005352 দ্রাঘিমাংশ = 24.151168 ব্যাসার্ধ = 857
  • টি 3 অক্ষাংশ = 57.005352 দ্রাঘিমাংশ = 24.163356 ব্যাসার্ধ = 714
  • টি 4 অক্ষাংশ = 56.999042 দ্রাঘিমাংশ = 24.168506 ব্যাসার্ধ = 714
  • টি 5 অক্ষাংশ = 56.994226 দ্রাঘিমাংশ = 24.15709 ব্যাসার্ধ = 771

ফলাফলটি দেখতে দেখতে এমন হবে: একটি অক্ষাংশ = XX.XXXXXXX দ্রাঘিমাংশ = XX.XXXXXXX ব্যাসার্ধ = XX

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

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

এখানে এবং এখানে কিছু অনুরূপ প্রশ্ন রয়েছে তবে এগুলির কোনওটিই আমার প্রশ্নের সঠিক উত্তর দেয় না।


আপনি কোন ভাষায় কাজ করছেন?
ওল্ফড্রাডে

বেশিরভাগ পিএইচপি, জাভাস্ক্রিপ্টের সামান্য বিট। আমি অনুমান করি এর আগে আমার এটি উল্লেখ করতে হবে তবে আমি একজন ওয়েব বিকাশকারী এবং হুবারের উত্তর বুঝতে আমাকে একটি গণিতবিদকে খুঁজে পেতে হবে।
কার্লিস বাউমানিস

রেডিয়াই কি আপেক্ষিক সংকেত শক্তি থেকে প্রাপ্ত?
কर्क কুইকেনডাল

হ্যাঁ! আসলে রেডিওগুলি ডিবিএম-এ রয়েছে
কার্লিস বাউমানিস

1
@ রেডডক্স, আংশিকভাবে - আমি সার্ভারসাইডে ম্যাথমেটিকা ​​ব্যবহার করে php_exec () দিয়ে এটি গণনা করতে পেরেছি।
কার্লিস বাউমানিস

উত্তর:


29

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

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

ডাটা টেবিল

ম্যাথমেটিকাকে ফিটের গণনা করার জন্য কোডের কেবল একটি লাইন এবং পরিমাপযোগ্য সিপিইউ সময় প্রয়োজন নেই:

fit = NonlinearModelFit[data, Norm[{x, y} - {x0, y0}], {x0, y0}, {x, y}, Weights -> 1/observations^2]

Edit--

বড় রেডির জন্য, আরও Norm[{x, y} - {x0, y0}]গোলক বা উপবৃত্তীয় দূরত্ব গণনা করার জন্য একটি ফাংশন দ্বারা ইউক্লিডিয়ান দূরত্বকে প্রতিস্থাপন করে আরও সঠিক (গোলাকার বা উপবৃত্তাকার) সমাধানগুলি পাওয়া যায় । ইন ম্যাথামেটিকাল এই কাজ করা যেতে পারে, যেমন মাধ্যমে

fit = NonlinearModelFit[data, GeoDistance[{x, y}, {x0, y0}], {x0, y0}, {x, y}, 
        Weights -> 1/observations^2]

- সম্পাদনার শেষ

এর মতো একটি পরিসংখ্যান কৌশল ব্যবহারের একটি সুবিধা হ'ল এটি প্যারামিটারগুলির জন্য আত্মবিশ্বাসের অন্তর (যা ডিভাইসের সমন্বয়কারী) এবং এমনকি ডিভাইসের অবস্থানের জন্য একযোগে আত্মবিশ্বাসের উপবৃত্ত তৈরি করতে পারে।

ellipsoid = fit["ParameterConfidenceRegion", ConfidenceLevel -> 0.95];
fit["ParameterConfidenceIntervalTable", ConfidenceLevel -> 0.95]

আত্মবিশ্বাস বিরতি সারণী

ডেটা এবং সমাধানটি প্লট করা শিক্ষণীয়:

Graphics[{Opacity[0.2], EdgeForm[Opacity[0.75]], White, Disk[Most[#], Last[#]] & /@ data, 
  Opacity[1], Red, ellipsoid, 
  PointSize[0.0125], Blue, Point[source], Red, Point[solution],
  PointSize[0.0083], White, Point @ points}, 
  Background -> Black, ImageSize -> 600]

মানচিত্র

  • সাদা বিন্দুগুলি হল (পরিচিত) অ্যাক্সেস পয়েন্টের অবস্থান।

  • বড় নীল বিন্দুটি সত্য ডিভাইসের অবস্থান।

  • ধূসর বৃত্তগুলি পরিমাপ করা রেডিয়িকে উপস্থাপন করে। আদর্শভাবে, তারা সবাই সত্য ডিভাইসের অবস্থানটিতে ছেদ করবে - তবে পরিমাপের ত্রুটির কারণে তারা অবশ্যই তা করবে না।

  • বৃহত লাল বিন্দুটি আনুমানিক ডিভাইসের অবস্থান।

  • লাল উপবৃত্তটি ডিভাইসের অবস্থানের জন্য একটি 95% আত্মবিশ্বাসের অঞ্চলকে সীমাবদ্ধ করে।

এক্ষেত্রে উপবৃত্তের আকৃতিটি আগ্রহের বিষয়: একটি প্রাকদ্বিতীয়-এসই লাইন ধরে স্থানীয় অনিশ্চয়তা সবচেয়ে বেশি। এখানে, তিনটি অ্যাক্সেস পয়েন্ট (NE এবং SW) এর দূরত্ব সবেমাত্র পরিবর্তিত হয় এবং অন্য দুটি অ্যাক্সেস পয়েন্টের (উত্তর এবং দক্ষিণ-পূর্ব) দূরত্বগুলির মধ্যে ত্রুটিগুলির মধ্যে একটি বাণিজ্য বন্ধ রয়েছে।

(সম্ভাব্য ক্রিয়াকলাপের কনট্যুর হিসাবে কিছু সিস্টেমে আরও সঠিক আত্মবিশ্বাসের অঞ্চল পাওয়া যায়; এই উপবৃত্তটি এই জাতীয় কনট্যুরের জন্য কেবলমাত্র দ্বিতীয়-আদেশের সমীকরণ is)

যখন রেডিয়ি ত্রুটি ছাড়াই পরিমাপ করা হয়, তখন সমস্ত বৃত্তের পারস্পরিক ছেদগুলির অন্তত একটি বিন্দু থাকবে এবং - যদি সেই বিন্দুটি অনন্য হয় - তবে এটি অনন্য সমাধান হবে।

এই পদ্ধতিটি দুই বা ততোধিক অ্যাক্সেস পয়েন্টগুলির সাথে কাজ করে। আত্মবিশ্বাসের ব্যবধানগুলি পেতে তিন বা ততোধিক প্রয়োজন। যখন কেবল দুটি উপলব্ধ থাকে, এটি ছেদ করার একটি বিন্দু খুঁজে পায় (যদি তারা উপস্থিত থাকে); অন্যথায়, এটি দুটি অ্যাক্সেস পয়েন্টের মধ্যে একটি উপযুক্ত অবস্থান নির্বাচন করে।


3
ভাল হয়েছে বিল!

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

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

2
আমি যদি এটি সঠিকভাবে পড়ছি, @ বেনআর, দেখে মনে হচ্ছে আপনি বিপরীত অনুপাতের তুলনায় স্কোয়ার রেডিয়ির অনুপাতে ডেটাটি ওজন করছেন । আপনি যখন এর দ্বারা গুণনের পরিবর্তে ভাগ করবেন তখন কি হবে square(data[2])?
whuber


1

এই ক্ষেত্রে, প্রতিটি চেনাশোনা অন্যান্য সমস্ত চেনাশোনা ছেদ করে এবং তাই আমরা এইভাবে ছেদ পয়েন্টগুলি নির্ধারণ করতে পারি:

প্রথমে সমস্ত এন * (এন -1) ছেদ পয়েন্ট নির্ধারণ করুন। এই ছেদ পয়েন্ট I সেট সেট করুন । টি পয়েন্টগুলির একটি তালিকা নিন যা অন্তঃতম পয়েন্টগুলি অন্তর্ভুক্ত করে। তারপর প্রতিটি পয়েন্টের জন্য পি মধ্যে আমি , চেক যদি পি প্রত্যেক বৃত্তের ভিতরে নেই। যদি পি প্রতিটি বৃত্তের অভ্যন্তরে থাকে তবে এটি অন্তঃস্থল ছেদটিতে পয়েন্ট। তালিকার টিতে এই জাতীয় পয়েন্ট যুক্ত করুন ।

এখন আপনার পছন্দসই ছেদ স্থানাঙ্ক রয়েছে। আমি অবস্থানটি অনুমান করার জন্য কমপক্ষে দুটি উপায় সম্পর্কে ভাবতে পারি:

  1. টি এবং সেন্ট্রয়েড দ্বারা গঠিত বহুভুজটির সেন্ট্রয়েড (ওজন হিসাবে দূরত্ব ব্যবহার করবেন?) গণনা করুন কাঙ্ক্ষিত অবস্থান।
  2. সর্বনিম্ন বৃত্তটি গণনা করুন যাতে টি এর প্রতিটি বিন্দু থাকে । তারপরে এই বৃত্তের কেন্দ্রটি পছন্দসই অবস্থান। এর পরে আর গণনা করা সহজবোধ্য হওয়া উচিত।

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


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