আপনি কি মার্কভ চেইন ব্যবহার করার কথা ভেবে দেখেছেন ? এটি কার্যকরভাবে একটি "সম্ভাব্য সেলুলার অটোমেটন", যার মাধ্যমে কাঙ্ক্ষিত এলোমেলো সরবরাহ করে। বিদ্যমান প্রজন্মের স্থানীয় প্রতিবেশীদের ক্ষেত্রে নতুন প্রজন্মকে নির্ধারণ করার পরিবর্তে, এটি নতুন প্রজন্মের জন্য সম্ভাব্যতা বিতরণ নির্দিষ্ট করে। এই বিতরণটি একই বা অনুরূপ অঞ্চলের চিত্রগুলির সময়ের ক্রমগুলি থেকে অনুমান করা যায়।
স্বজ্ঞাতভাবে, এই মডেলটি বলে যে একটি ঘর অগত্যা বন-অ-বনানী (বা তদ্বিপরীত ) তে রূপান্তর করবে না, তবে এটি রূপান্তরটি ঘিরে ফেলবে এমন সম্ভাবনা অবিলম্বে তার চারপাশের জমি আবরণের উপর নির্ভর করে। এটি কভারের একাধিক শ্রেণি, আশেপাশের জটিল কনফিগারেশনগুলি পরিচালনা করতে পারে এবং ল্যান্ড কভার বিবর্তনের সাম্প্রতিক ইতিহাস "স্মরণ" করতে এমনকি সাধারণীকরণ করা যেতে পারে।
স্থানান্তরগুলি মানচিত্র বীজগণিত বিবৃতি ব্যবহার করে প্রয়োগ করা যেতে পারে, যা কোনও রাস্টার ভিত্তিক জিআইএসে এমনকি এই পদ্ধতিটি সেল-লেভেলের ডেটাতে সরাসরি বা তাত্ক্ষণিকভাবে অ্যাক্সেস ছাড়াই ব্যবহারিক করে তোলে। আর ব্যবহার করা আরও সহজ করে তোলে।
উদাহরণস্বরূপ, সাদা এবং কালো মাত্র দুটি ক্লাসের সাথে এই প্রারম্ভিক কনফিগারেশনটি বিবেচনা করুন:
কী ঘটতে পারে তা উদাহরণস্বরূপ, আমি একটি প্যারামিটারাইজড মডেল তৈরি করেছি (কোনও ডেটা ভিত্তিক নয়) যেখানে কালোতে রূপান্তর ঘটে সম্ভাবনা 1 - কিউ ^ কে যেখানে কে 3 দ্বারা 3 প্রতিবেশী (কে = ০, ১/৯, ২/৯, ..., ১) যখন উভয়ই Q ছোট বা আশেপাশের বেশিরভাগ অংশ ইতিমধ্যে কালো, নতুন ঘরটি কালো হবে। এখানে 0.25 থেকে 0.05 পর্যন্ত মানের পাঁচটি মানের দশম প্রজন্মের চারটি স্বতন্ত্র সিমুলেশন রয়েছে:
স্পষ্টতই এই মডেলটিতে সিএর অনেকগুলি বৈশিষ্ট্য রয়েছে তবে এটি বিকল্প ফলাফল অন্বেষণে কার্যকর এলোমেলো প্রভাবও অন্তর্ভুক্ত করে।
কোড
নিম্নলিখিতটি সিমুলেশন প্রয়োগ করে R
।
#
# Make a transition from state `x` using a kernel having `k.ft` as
# its Fourier transform.
#
transition <- function(x, k.ft, q=0.1) {
k <- zapsmall(Re(fft(k.ft * fft(x), inverse=TRUE))) / length(x)
matrix(runif(length(k)) > q^k, nrow=nrow(k))
}
#
# Create the zeroth generation and the fft of a transition kernel.
#
n.row <- 2^7 # FFT is best with powers of 2
n.col <- 2^7
kernel <- matrix(0, nrow=n.row, ncol=n.col)
kernel[1:3, 1:3] <- 1/9
kernel.f <- fft(kernel)
set.seed(17)
x <- matrix(sample(c(0,1), n.row*n.col, replace=TRUE, prob=c(599, 1)), n.row)
#
# Prepare to run multiple simulations.
#
y.list <- list()
parameters <- c(.25, .2, .15, .1, .05)
#
# Perform and benchmark the simulations.
#
i <- 0
system.time({
for (q in parameters) {
y <- x
for (generation in 1:10) {
y <- transition(y, kernel.f, q)
}
y.list[[i <- i+1]] <- y
}
})
#
# Display the results.
#
par(mfrow=c(1,length(parameters)))
invisible(sapply(1:length(parameters),
function(i) image(y.list[[i]],
col=c("White", "Black"),
main=parameters[i])))
raster
এখনও প্যাকেজ তাকান? রাস্টার (noo, rly?) ডেটা নিয়ে কাজ করার জন্য এটি প্রচুর সরঞ্জাম পেয়েছে।