রঙের বলগুলি কীভাবে বদলাবেন?


10

আমার 400 টি বল রয়েছে, যার মধ্যে 100 টি লাল, 40 টি হলুদ, 50 টি সবুজ, 60 নীল, 70 বেগুনি, 80 টি কালো। (একই রঙের বলগুলি অভিন্ন)

আমার একটি দক্ষ শিফলিং অ্যালগরিদম দরকার, যাতে বদলে যাওয়ার পরে বলগুলি তালিকায় থাকে এবং

যে কোনও টানা 3 বল একই রঙের নয়। উদাহরণস্বরূপ, আমি "লাল, লাল, লাল, হলুদ ...." থাকতে পারি না

এবং, সমস্ত ক্রমবিকাশ হওয়ার সম্ভাবনা "সমান"। (ভাল, যদি দক্ষতা বনাম পক্ষপাতহীনতা ট্রেড অফ যথেষ্ট ভাল হয় তবে আমি পক্ষপাতদুষ্টতার চেয়ে দক্ষতার চেয়ে বেশি কিছু মনে করি না)।

আমি ফিশার-ইয়েটস-নথকে মানিয়ে নেওয়ার চেষ্টা করেছি, তবে ফলাফলটি আদর্শ নয়।

ফিশার-ইয়েটস কেন যথেষ্ট ভাল নয়? হিসাবে FY মন্টি কার্লো বিপরীত রূপান্তর গ্রহণ করে। এবং আউটপুট বিতরণ একই রঙের বলগুলিকে আলাদাভাবে আচরণ করে, অর্থাৎ এটি আমার প্রয়োজনের জন্য পক্ষপাতদুষ্ট ফলাফল তৈরি করবে।

এবং, নিষ্পাপ ভাবনাটি পুরো স্থান থেকে সমস্ত খারাপ ক্রিয়াকলাপকে ফিল্টার আউট / ব্যাকট্র্যাকিং করতে হবে। যখন সীমাবদ্ধতা খুব দৃ is় হয়, বলুন, আমাদের যদি মাত্র 300 বল থাকে এবং এর মধ্যে 100 টি লাল হয়, তবে যথাযথ ক্রমবর্ধমান হওয়ার আগে অনেকগুলি ব্যাক ট্র্যাকিং / ব্যর্থতা হবে।

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


3
আপনি যে অন্যান্য প্রশ্ন জিজ্ঞাসা করেছেন সেগুলির উত্তরগুলি কী খাপ খাইয়ে নেওয়ার চেষ্টা করেছেন ? উভয় প্রশ্ন দেখতে খুব অনুরূপ :)।
গোপি

@ গোপি: হ্যাঁ, এবং আমি আশা করি যে কোনও প্রশ্নের উত্তরই অন্যটির অনুপ্রেরণা নিয়ে আসবে।
কলিনফ্যাং

সবচেয়ে সহজ ধারণাটি যা আমার মনে আসে তা হ'ল কিছু রঙ থেকে এলোমেলোভাবে একটি বল বাছাই করা শুরু করা, যেখানে প্রতিটি রঙ সেই রঙের সাথে থাকা বলের সংখ্যার ভিত্তিতে সম্ভাব্যতার সাথে বেছে নেওয়া হবে, এই সীমাবদ্ধতার সাথে যদি শেষ 2 বলটি থাকে একই রঙ, আপনি এটি বর্তমান পুনরাবৃত্তিতে চয়ন করতে পারবেন না। দক্ষতা খারাপ হওয়া উচিত না এবং আমি এর মধ্যে কোনও পক্ষপাত দেখতে পাই না (যার অর্থ এই নয় যে সেখানে কোনও নেই; সম্ভবত আমি কিছু মিস করছি)।
জর্জ

3
@ জর্জি বি: আমরা কেন এই প্রক্রিয়াটিকে অন্যান্য সম্পর্কিত প্রশ্নে পক্ষপাতিত্ব করি তা পেরেছিলাম ডেভিড Eppstein যে প্রশ্ন তার উত্তর ব্যাখ্যা হিসাবে, সেখানে একটি গতিশীল প্রোগ্রামিং আলগোরিদিম যে লাগে সময়, যেখানে রং সংখ্যা। আরও কার্যকর কিছু দুর্দান্ত হতে পারে - এমনকি θ ( এন কে / 2 )θ(nk)kθ(nk/2)
পিটার শোর

2
@GeorgeB। এমনকি ডেভিড এপস্টিনের দৃষ্টিভঙ্গি কম হলেও, এমসিসিএম পদ্ধতির সাহায্যে কীভাবে এই সমস্যাটি সমাধান করা যায় সে বিষয়ে আমি আগ্রহী।
পিটার শোর

উত্তর:


7

বলগুলির সমস্ত সম্ভাব্য ক্রমগুলির উপর সমান বন্টনে রূপান্তর করার জন্য আপনার মার্কোভ চেইনের জন্য যা দরকার তা হ'ল এটি বিপরীত: সিক্যুয়েন্স থেকে সিকোয়েন্স জেতে যাওয়ার সম্ভাবনা বিপরীত দিকের দিকে চলে যাওয়ার সমান। আমি এইভাবে প্রস্তাব দিচ্ছি যে আপনি সমস্ত সম্ভাব্য সিকোয়েন্সগুলিতে একটি মার্কভ চেইন সম্পাদন করতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন (কোন ধরণের প্রবাহটি বেছে নেওয়ার জন্য কিছু স্থির সম্ভাবনার বন্টন সহ) use নিম্নলিখিতটিতে, একটি "রান" একই রঙের বলগুলির একটানা সর্বোচ্চ দৈর্ঘ্যের ধারাবাহিকতা। এই মার্কভ চেইনটি কমপক্ষে তিনটি রঙের উপর নির্ভর করে।ij

  1. এলোমেলোভাবে দুটি রান বাছুন। আপনি যদি এগুলি বিনিময় করতে পারেন এবং এখনও একটি আইনী ধারা রয়েছে, তবে এটি করুন।

  2. দুটি সংলগ্ন রান বাছাই করুন। আপনি যদি এগুলি বিনিময় করতে পারেন এবং এখনও একটি আইনী ধারা রয়েছে, তবে এটি করুন।

  3. একই রঙের দুটি রান চয়ন করুন। তাদের মধ্যে বলগুলি এলোমেলোভাবে আইনী সম্ভাবনার মধ্যে পুনরায় বিতরণ করুন (সুতরাং যদি একক রানে সর্বাধিক বলের সংখ্যা 3 ছিল এবং আপনি দুটি নির্বাচিত রানের মোট 5 বল রেখেছিলেন তবে প্রথমটি 2 বা 3 বল পাওয়ার সমান সম্ভাবনা রয়েছে; মোট 3 টি বল ছিল, প্রথমটি 1 বা 2 পাওয়ার সমান সম্ভাবনা; এখানে মোট 4 টি বল থাকলে 1, 2, এবং 3 টি সমান সম্ভাবনা থাকে)।

  4. কিছু রঙ চয়ন করুন এলোমেলোভাবে। ক্রম বিবেচনা করুন এস ' রং এর সব বল দিয়ে বল সি আমি সরানো হয়েছে। এখন, র্যান্ডম দুটি বিন্দুতে বাছাই এস ' যেখানে বিভিন্ন রঙের সংলগ্ন বাজে কথা স্পর্শ করুন।CiSCiS

    ক। আসল সিকোয়েন্স এস এ দুটি পয়েন্টে যদি রঙিন দুটি রান থাকে এবং সর্বাধিক দৈর্ঘ্য না হয় তবে সম্ভাব্যতার সাথে নির্বাচিত প্রতিটি দিকনির্দেশ দিয়ে একটি বলকে এক থেকে অন্য দিকে সরিয়ে নিন ½CiS

    খ। মূল সিকোয়েন্স এস- এ এই দুটি পয়েন্টে রঙিন দুটি রান থাকলে , তবে একটির সর্বোচ্চ দৈর্ঘ্য এবং অন্যটি নয়, সম্ভাব্যতা সহ একটি দৈর্ঘ্যকে সর্বোচ্চ দৈর্ঘ্য থেকে ছোট করে একটিতে সরান ½CiS

    গ। সম্ভাব্যতা সহ এস-এ এই দুটি পয়েন্টের একটিতে রঙিন কেবল একটি রান থাকলে one একটি বল রান থেকে অন্য বিন্দুতে সরান। CiS

    ঘ। যদি এই দুটি বিন্দুতে রঙিন এর কোনও চালনা না ঘটে বা এই দুটি বিন্দুতে সর্বোচ্চ দৈর্ঘ্যের রান থাকে তবে কিছুই করবেন না।Ci

যদি আমার বিশ্লেষণটি সঠিক হয়, এটি একটি বিপরীতমুখী মার্কভ চেইন যা অবশেষে রঙিন বলগুলির আইনী অনুক্রমের অভিন্ন বিতরণে রূপান্তরিত হয়, তাই আপনি যদি এই চেইনটি দীর্ঘকাল ধরে চালান, আপনি এই ইউনিফর্ম বিতরণের খুব কাছাকাছি পাবেন।

এটি কখন রূপান্তরিত হবে তা আপনি কীভাবে বলতে পারেন? আমি এই ক্রমটির এনট্রপি দেখার পরামর্শ দেব এবং এটি ক্রমবর্ধমান বন্ধ হয়ে গেলে থামবে। আপনি কীভাবে এন্ট্রপি গণনা করবেন? এনট্রপি গণনায় দুটি প্রধান পদ রয়েছে: রান দৈর্ঘ্যের বিতরণ এবং প্রতিটি রানের রঙের ক্রম। রান লেন্থ বিতরণের জন্য, অনুমান আছে রং এর রান আমি দৈর্ঘ্য সঙ্গে । এনট্রপি এইসব এর অবদান Σ আমি লগ ইন করুন 2 ( Σ এন আমি , ni,kik যেখানেrএকটি রানের সর্বোচ্চ অনুমোদিত দৈর্ঘ্য। এখন, এন্ট্রপিতে রঙের ক্রমের অবদান বিবেচনা করা যাক। মনে করুনজায়গাগুলি রয়েছে যেখানে বর্ণের একটি রানতত্ক্ষণাত্একটিতে অনুসরণ করে(তাই)। এন্ট্রপিতে এর অবদান হ'ল

i log2 (kni,kni,1 ni,2  ni,r),
r আই জে এম আমি , আই = mi,jijmi,i=0 যেখানেরঙের সংখ্যা।
i log2 (jmi,jmi,1 mi,2  mi,c),
c

(যথার্থতার স্বার্থে, আমি নোট করি যে আমরা প্রথম বলের রঙ সহ এনট্রপিতে অনেকগুলি অবদান রেখে দিচ্ছি, তবে এগুলি নিম্ন অর্ডার শর্ত যা অবহেলা করা নিরাপদ should)

হালনাগাদ:

এটির গতি বাড়ানোর উপায় থাকতে হবে। আমি বিশ্বাস করি যে সি এবং ডি পদক্ষেপের জন্য, আপনি একবারে এক রঙের সমস্ত রানের উপরে এই দুটি পদক্ষেপটি সম্পাদন করতে বিশ্লেষণ ব্যবহার করতে পারেন। A এবং b পদক্ষেপের জন্য, এটি রঙিন বলগুলির এলোমেলো ক্রম সীমাবদ্ধতার সাথে সন্ধান করার প্রশ্নের সমতুল্য যে একই রঙের দুটি বল স্পর্শ করে না। এই সমস্যার জন্য মিশ্রণের কিছু ভাল উপায় থাকা উচিত। তারপরে আপনাকে কেবল সি / ডি পদক্ষেপের সাথে একটি / বি পদক্ষেপগুলি বিকল্প করতে হবে, যেখানে প্রতিটি পদক্ষেপ সেই দুটি পদক্ষেপের সাথে পুরোপুরি মিশে যায়। আমি মনে করি এটি বেশ দ্রুত রূপান্তরিত হওয়া উচিত, যদিও এই মার্কভ চেইনের জন্য আমার কাছে কোনও কঠোর বিশ্লেষণ নেই।


0

হিসাবে আপনি বলেন, এটা নিশ্চিত যে প্রতি বিন্যাস সমানভাবে সম্ভবত করা সম্ভব নয় এবং , নিশ্চিত করুন যে রং সমানভাবে বিতরণ করা হয়েছে কারণ একাধিক বিন্যাসন এক একটি সারিতে সব লাল হয়েছে।

রঙগুলি সমানভাবে বিতরণ করা হয়েছে তা নিশ্চিত করার একটি খুব মার্জিত, তবে অবশ্যই স্পষ্ট নয়, পদ্ধতিটি হ'ল একটি স্বল্প তাত্পর্যপূর্ণ ক্রমটি উত্তোলন করা।

N=4001Ns

একই রঙের সমস্ত বল ক্রমাগত নম্বরযুক্ত রয়েছে তা নিশ্চিত করুন। এটি হ'ল, আপনার ক্ষেত্রে, প্রথম 100 বল লাল হতে দিন, পরের 40 টি হলুদ হতে হবে, পরের 50 টি সবুজ ইত্যাদি,

kthxk

xk=(s+kϕ)(mod1),
  • ϕ=1+52=1.61803399...
  • (mod1)
  • s

Nxk

xk

s=0

{B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,B,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,B,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,G,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,B,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,B,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,B,Y,K,B,R,P,Y,K,B,R,P,G,R,P,Y,K,B,R,P,G,K,R,B,R,K,G,R,P,Y,K,B,R,P,G,K,R,P,Y,K,B,R,P,G,K}
BK

s

xk

n=400

phi = (1+pow(5,0.5))/2
x = np.zeros(n)                 
s = np.random.uniform(0,1)
for i in range(n):
    x = (s + phi*(i+1)) %1

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