ড্যাম্পস্টারের সম্মিলনের নিয়ম সম্পাদন করুন


9

ডিএসটি-তে ক্র্যাশ কোর্স

ডিম্পস্টার – শাফার তত্ত্ব (ডিএসটি) একটি বিশ্বাস গঠনের জন্য প্রমাণের বিভিন্ন উত্সকে একত্রিত করার জন্য একটি পদ্ধতি সরবরাহ করে। সম্ভাব্য বিবৃতি (যার মধ্যে একটি সত্য উত্তর) এর একটি তালিকা দেওয়া, প্রতিটি সম্ভাব্য বিবৃতি সংমিশ্রণকে একটি "ভর" অর্পণ করা হয় যা সমর্থনকারী প্রমাণের ডিগ্রি নির্দেশ করে। সমস্ত সংমিশ্রণের মোট ভর সর্বদা 1 এর সমান।

এই ভর অ্যাসাইনমেন্ট থেকে, আমরা এই সংমিশ্রণের সত্য উপর একটি যুক্তিসঙ্গত নিম্ন বাউন্ড (বিশ্বাস) এবং উপরের আবদ্ধ (প্রশংসনীয়) তৈরি করতে পারি। যে bel(X)কোনও সেট এক্স এর বিশ্বাস হ'ল এক্স এর সমস্ত সাবটাইটের (নিজেকে সহ) জনগণের যোগফল। যে pl(X)কোনও সেট এক্সের প্রশ্রয়যোগ্যতা হ'ল "1 - সমস্ত সেটের জনগণের যোগফল X এর সাথে পৃথক হয়"। নীচের চিত্রটি ব্যাখ্যা করে যে কীভাবে বিশ্বাস এবং করণীয়তা অনিশ্চয়তার সাথে সম্পর্কিত।

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

উদাহরণস্বরূপ, ধরুন একটি ট্রাফিক আলো যে হয় এক হতে পারে যে দিন Green, Yellow, অথবা Rইডি। বিকল্পগুলির তালিকা এবং একটি সম্ভাব্য ভর অ্যাসাইনমেন্ট নীচে দেখানো হয়েছে:

binary    interpretation    m(X)    bel(X)  pl(x)
000       null              0       0       0
001       R                 0.2     0.2     0.7
010       Y                 0.1     0.1     0.3 
011       Y||R              0.05    0.35    0.8
100       G                 0.2     0.2     0.65
101       G||R              0.3     0.7     0.9
110       G||Y              0       0.3     0.8
111       G||Y||R           0.15    1       1

এই জনগণকে একটি অ্যারে দ্বারা চিহ্নিত করা যায় [0, 0.2, 0.1, 0.05, 0.2, 0.3, 0, 0.15]

এখন প্রশ্ন, জনসাধারণ কী তা আমরা কীভাবে সিদ্ধান্ত নেব? ধরা যাক যে আমাদের কাছে একটি সেন্সর ছিল আলোকের দিকে তাকিয়ে, এবং এই সেন্সরটি ইঙ্গিত দেয় যে আলো সবুজ নয় ; তবে, আমরা জানি যে 20% সম্ভাবনা রয়েছে যে সেন্সরটি একটি এলোমেলো, প্রফুল্ল সংকেত পাঠিয়েছে। এই প্রমাণের টুকরোটি বৃহত্তর বিতরণ দিয়ে বর্ণনা করা যেতে পারে [0, 0, 0, 0.8, 0, 0, 0, 0.2]যেখানে {Y, R 0. এর ভর 0.8 এবং {G, Y, R a এর ভর 0.2 থাকে।

একইভাবে, আসুন আমরা বলি যে কিছু দ্বিতীয় সেন্সরটি নির্দেশ করে যে আলোটি লাল নয় , তবে আমরা এটিও জানি যে সেন্সরটি ভুল এবং আলো আসলে লাল is এই প্রমাণের টুকরাটি দিয়ে বর্ণনা করা যেতে পারে [0, 0.3, 0, 0, 0, 0, 0.7, 0]যেখানে {G, Y a এর ভর ০.7 এবং {R a এর ভর ০. 0.3।

একক ভর বন্টন গঠনের জন্য প্রমাণের এই দুটি টুকরোটিকে একীভূত করতে, আমরা ডেম্পাস্টারের রুল অফ কম্বিনেশন ব্যবহার করতে পারি।

ড্যাম্পস্টারের সম্মিলনের নিয়ম

দুই ভর নিয়োগ m1এবং m2গঠন মিলিত হতে পারে m1,2নিম্নলিখিত সূত্র ব্যবহার করে, যেখানে A, Bএবং Cপ্রতিনিধিত্ব সম্ভাব্য সমাহার (উপরে টেবিলের সারি)।

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

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

যেখানে কে রেন্ডারমালাইজেশনের জন্য ব্যবহৃত "সংঘাতের" একটি পরিমাপ, এবং এটির দ্বারা গণনা করা হয়:

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

নীচের চিত্রের মতো জ্যামিতিকভাবেও এই প্রক্রিয়াটি বর্ণনা করা সম্ভব। যদি A = 011(হলুদ বা লাল) এবং B = 101(সবুজ বা লাল) হয়, তবে m1(A) * m2(B) অবদানের মান (যোগ করা হয়) m1,2(001)(লাল) এর মান । এ এবং বি এর সমস্ত সম্ভাব্য সংমিশ্রণের জন্য এই প্রক্রিয়াটি পুনরাবৃত্তি হয় A&B != 0। পরিশেষে, অ্যারেটি পুনর্নির্মাণ করা হয় যাতে মানগুলি মোট 1 টি যোগ করে।

https://www.researchgate.net/profile/Fabio_Cuzzolin/publication/8337705/figure/fig1/AS:349313566822412@1460294252311/Fig-1-Dempster's-rule-of-combination-On-the-yx-axes-are- ফোটানো-ফোকাল-elements_big.pbm

এখানে একটি সাধারণ জাভা পদ্ধতি যা ডেম্পস্টারের নিয়ম অনুসারে দুটি অ্যারে সংযুক্ত করে:

public static double[] combine(double[] a, double[] b) {
  double[] res = new double[a.length];
  for (int i = 0; i < a.length; i++) {
    for (int j = 0; j < b.length; j++) {
      res[i & j] += a[i] * b[j];
    }
  }
  for (int i = 1; i < res.length; i++) {
    res[i] /= 1 - res[0];
  }
  res[0] = 0;
  return res;
}

এটি বাস্তবে কীভাবে কাজ করে তা দেখতে উপরের ট্র্যাফিক লাইট সেন্সরগুলি বিবেচনা করুন, যা জনগণকে স্বাধীনভাবে দেয় [0, 0, 0, 0.8, 0, 0, 0, 0.2]এবং [0, 0.3, 0, 0, 0, 0, 0.7, 0]। ডেম্পস্টারের নিয়ম সম্পাদন করার পরে, ফলাফলের যৌথ ভর হয় [0, 0.3, 0.56, 0, 0, 0, 0.14, 0]। বেশিরভাগ ভরকে "হলুদ" বরাদ্দ করা হয়েছে, যা স্বজ্ঞাত জ্ঞান দেয় যে এই দুটি সেন্সর যথাক্রমে "সবুজ নয়" এবং "লাল নয়" ফেরত দিয়েছে। অন্যান্য দুটি ভর ("লাল" এর জন্য 0.3 এবং "সবুজ বা হলুদ" এর জন্য 0.14) পরিমাপের অনিশ্চয়তার কারণে ty

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা আসল সংখ্যার দুটি তালিকা নেয় এবং দুটি ইনপুট তালিকায় ডেম্পস্টারের নিয়ম প্রয়োগের ফলাফলকে আউটপুট করে। দুটি ইনপুট তালিকার দৈর্ঘ্য সমান হবে এবং সেই দৈর্ঘ্যটি 2 এর শক্তি হবে এবং কমপক্ষে 4 হবে each 1 পর্যন্ত।

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

উদাহরণ I / O

in:
[0, 0, 0, 0.8, 0, 0, 0, 0.2]
[0, 0.3, 0, 0, 0, 0, 0.7, 0]
out:
[0.0, 0.3, 0.56, 0.0, 0.0, 0.0, 0.14, 0.0]

in:
[0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.4]
[0.0, 0.2, 0.0, 0.2, 0.0, 0.2, 0.0, 0.4]
out:
[0.0, 0.2889, 0.0889, 0.1556, 0.0889, 0.1556, 0.0444, 0.1778]

in:
[0.0, 0.0, 0.5, 0.5]
[0.0, 0.7, 0.1, 0.2]
out:
[0.0, 0.53846, 0.30769, 0.15385]

in:
[0.0, 0.055, 0.042, 0.098, 0.0, 0.152, 0.0, 0.038, 0.031, 0.13, 0.027, 0.172, 0.016, 0.114, 0.058, 0.067]
[0.0, 0.125, 0.013, 0.001, 0.012, 0.004, 0.161, 0.037, 0.009, 0.15, 0.016, 0.047, 0.096, 0.016, 0.227, 0.086]
out: (doesn't have to be this precise)
[0.0, 0.20448589713416732, 0.11767361551134202, 0.028496524069011694, 0.11809792349331062, 0.0310457664246791, 0.041882026540181416, 0.008093533320057205, 0.12095719354780314, 0.11306959103499466, 0.06412594818690368, 0.02944697394862137, 0.06398564368086611, 0.014369896989336852, 0.03774983253978312, 0.006519633578941643]

in:
[0.0, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.1, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.1, 0.1, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.0, 0.1, 0.0, 0.1, 0.0]
out:
[0.0, 0.09090909090909094, 0.23376623376623382, 0.0, 0.07792207792207795, 0.025974025974026, 0.03896103896103895, 0.0, 0.10389610389610393, 0.05194805194805199, 0.02597402597402597, 0.0, 0.012987012987012984, 0.012987012987012993, 0.012987012987012984, 0.0, 0.09090909090909094, 0.038961038961038995, 0.06493506493506492, 0.0, 0.07792207792207796, 0.0, 0.0, 0.0, 0.012987012987012984, 0.012987012987013, 0.012987012987012984, 0.0, 0.0, 0.0, 0.0, 0.0]

2
কিছু জিনিস আমি স্যান্ডবক্সে পোস্ট করতে চেয়েছিলাম, তবে সুযোগটি পেলাম না: আমি মনে করি যে বেশিরভাগ প্রশ্নই এমনভাবে লেখা উচিত যাতে বীজগণিতের দক্ষ কেউ তাদের বুঝতে পারে .. এখানে কয়েকটি বিষয় যা আমার মনে হয় যে স্পষ্ট করা উচিত: কি এম (এক্স)? বিভেদ সেট কি? আপনি 20% থেকে একটি জনসাধারণের কাছে কিভাবে পাবেন? আপনার কেন জনসাধারণকে অন্য একটি ভরতে পরিণত করতে হবে? থিয়েটা আপনার প্রথম সমীকরণে কি উপস্থাপন করে? এবি এবং সি কোনটি উপস্থাপন করে? চ্যালেঞ্জটি কেবল ডিআরসির উপর ভিত্তি করে কেন ডিএসটি অন্তর্ভুক্ত করবেন? মানুষকে বিভ্রান্ত করার দরকার নেই।

@ ট্রাইকপ্লেক্স আমি সর্বনিম্ন নির্ভুলতার প্রয়োজনীয়তা যুক্ত করেছি (4 দশমিক স্থানে গোল করার সময় সঠিক)।
ফিনোটপিপি

উত্তর:


2

পার্ল, 68 বাইট

এর জন্য +2 অন্তর্ভুক্ত -an

প্রথম সেটটি সারি হিসাবে এবং দ্বিতীয়টি STDIN এ কলাম হিসাবে দিন

perl -M5.010 dempster.pl
0.0  0.0  0.5  0.5
0.0
0.7
0.1
0.2
^D
^D

dempster.pl:

#!/usr/bin/perl -an
/$/,map$H[$m%@F&$m++/@F]+=$_*$`,@F for<>;say$%++&&$_/(1-"@H")for@H

একটি চমত্কার স্ট্যান্ডার্ড গল্ফ সমাধান। যদি আমি প্রতিস্থাপন কাজ করে না @Hদ্বারা@;


সুন্দর. "সাথে কাজ করে না" সম্পর্কে @;: স্ট্যাকওভারফ্লো
দাদা

@ দাদা যে স্ট্যাকের ওভারফ্লো উত্তরটি খুব কার্যকর ছিল। আমি অস্পষ্টভাবে জানতাম যে এই ভেরিয়েবলগুলি বিভক্ত হয় না তবে কারণটি কখনই বুঝতে পারে না। এবং এটি আমার প্রাইমিং পুজলস এবং কোলফের
টন হসপেল

আপনার সম্পাদনার আগে আপনি "একরকম" লিখেছিলেন, সুতরাং যদি আপনি জানেন না কেন, তবে এটি বাস্তবায়নের ক্ষেত্রে একটি অনিবন্ধিত পছন্দ ... "" @ এর সাথে কাজ করে না; " ঠিক "@ এইচ" এর কারণে? (যদি না হয় তবে আমার খারাপ, আমার মন্তব্যে কখনও আপত্তি করবেন না)
দাদা

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

ওহ দুঃখিত, আমি আপনার আগের মন্তব্যটি ভুলভাবে পড়েছি: আমি পড়েছিলাম "খুব দরকারী ছিল না" এর পরিবর্তে "খুব দরকারী ছিল না" read আচ্ছা আমরা তখন একমত!
দাদা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.