Deterministik simulyatsiya modeli algoritmi misoli
Har qanday dasturlash tilida amalga oshirish oson bo'lgan "Hayot" deb nomlanuvchi tirik organizmlar populyatsiyasining simulyatsion modelini ko'rib chiqing.
O'yin algoritmini yaratish uchun kvadrat maydonni ko'rib chiqing n+ 1 ustunlar va qatorlar odatda 0 dan raqamlangan n... Qulaylik uchun biz chegara ustunlari va qatorlarini "o'lik zona" deb belgilaymiz, ular faqat yordamchi rol o'ynaydi.
Koordinatali maydonning har qanday ichki katakchasi uchun ( i, j), 8 ta qo'shni aniqlanishi mumkin. Agar hujayra "tirik" bo'lsa, uni bo'yab qo'ying, agar hujayra "o'lik" bo'lsa, uni bo'sh.
Keling, o'yin qoidalarini belgilaymiz. Agar hujayra ( i, j) "Tirik" va u uchdan ortiq "tirik" hujayralar bilan o'ralgan, u o'ladi (aholining ko'payishidan). "Tirik" hujayra ham o'ladi, agar uning muhitida ikkitadan kam "tirik" hujayra bo'lsa (yolg'izlikdan). Agar uning atrofida uchta "tirik" hujayra paydo bo'lsa, "o'lik" hujayra jonlanadi.
Qulaylik uchun biz ikki o'lchovli qatorni kiritamiz A, agar uning elementlari mos keladigan katak bo'sh bo'lsa, 0 qiymatini oladi, agar hujayra "jonli" bo'lsa, 1. Keyin koordinatali hujayraning holatini aniqlash algoritmi ( i, j) quyidagicha ta'riflanishi mumkin:
S: = A + A +
A + A
A + A +
A + A;
Agar (A = 1) Va((S> 3) Yoki
(S.<)) Keyin B: = 0;
Agar (A = 0) Va(S = 3)
Keyin B: = 1;
Mana, qator B keyingi bosqichda maydon koordinatalarini aniqlaydi. Dan barcha ichki hujayralar uchun i= 1 ga n- 1 va j= 1 ga n- 1 yuqorida aytilganlar rost. E'tibor bering, keyingi avlodlar ham xuddi shunday belgilanadi, faqat qayta tayinlash tartibini bajarish kerak:
Men uchun: = 1 Kimga_N_-_1_Qil_J_uchun:_=_1_Kimga_N_-_1_Qil'>Kimga N - 1 Qil
J uchun: = 1 Kimga N - 1 Qil
A: = B;
Maydon holatini displey ekranida matritsada emas, balki grafik shaklda ko'rsatish qulayroqdir.
O'yin maydonining dastlabki konfiguratsiyasini o'rnatish tartibini aniqlashgina qoladi. Hujayralarning dastlabki holatini tasodifiy aniqlash uchun algoritm mos keladi
Men uchun: = 1 Kimga K Qil
Boshlash K1: = Tasodifiy (N - 1);
K2: = Tasodifiy (N - 1) + 1;
Foydalanuvchi uchun dastlabki konfiguratsiyani o'zi o'rnatishi qiziqroq, uni amalga oshirish oson. Ushbu model bilan o'tkazilgan tajribalar natijasida, masalan, hech qachon o'lmaydigan, o'zgarmagan holda yoki konfiguratsiyasini ma'lum vaqt davomida o'zgartiradigan tirik organizmlarning barqaror turar joylarini topish mumkin. "Xoch" turar joyi mutlaqo beqaror (ikkinchi avlodda o'ladi).
Asosiy informatika kursida talabalar "Dasturlashga kirish" bo'limida "Hayot" simulyatsiya modelini amalga oshirishlari mumkin. Simulyatsiya modellashtirishni puxta o'zlashtirish o'rta maktabda informatika ixtisoslashtirilgan yoki tanlangan kursida bo'lishi mumkin. Bundan tashqari, bu variant muhokama qilinadi.
Tadqiqot boshlanishi tasodifiy jarayonlarni simulyatsiya qilish bo'yicha ma'ruza. Rus maktabida ehtimollik nazariyasi va matematik statistika tushunchalari matematika kursiga endigina kiritila boshlandi va o'qituvchi dunyoqarash va matematik madaniyatni shakllantirish uchun zarur bo'lgan ushbu material bilan tanishishga tayyor bo'lishi kerak. . Biz ta'kidlaymizki, biz muhokama qilinayotgan tushunchalar doirasiga elementar kirish haqida gapirayapmiz; Buni 1-2 soat ichida bajarish mumkin.
Keyin biz berilgan taqsimot qonuniga ega bo'lgan kompyuterda tasodifiy sonlar ketma -ketligini yaratish bilan bog'liq texnik masalalarni muhokama qilamiz. Bunday holda, har bir universal dasturlash tilida 0 dan 1 gacha bo'lgan intervalda teng taqsimlangan tasodifiy sonlar generatori mavjudligiga ishonish mumkin. Bu bosqichda uni amalga oshirish tamoyillari haqidagi murakkab masalaga o'tish o'rinli emas. Mavjud tasodifiy sonlar datchiklariga asoslanib, biz qanday tartibga solish mumkinligini ko'rsatamiz
a) har qanday segmentdagi bir xil taqsimlangan tasodifiy sonlar generatori [ a, b];
b) deyarli har qanday taqsimot qonuni uchun tasodifiy sonlar generatori (masalan, intuitiv aniq "tanlash-rad etish" usuli yordamida).
Yuqorida tavsiflangan navbatdagi muammoni ko'rib chiqishni navbatdagi muammolarni hal qilish tarixini muhokama qilishdan boshlash maqsadga muvofiqdir (telefon stantsiyasida so'rovlarga xizmat ko'rsatish bo'yicha Erlang muammosi). Shundan so'ng, bitta sotuvchi bilan do'konda navbatni shakllantirish va unga xizmat ko'rsatish misolida tuzilishi mumkin bo'lgan eng oddiy muammoni ko'rib chiqiladi. E'tibor bering, modellashtirishning birinchi bosqichida tasodifiy o'zgaruvchilarni kirishda taqsimlash ehtimoli teng deb taxmin qilish mumkin, bu haqiqiy bo'lmasa -da, bir qator qiyinchiliklarni bartaraf etadi (tasodifiy sonlarni yaratish uchun siz shunchaki o'rnatilgan sensordan foydalanishingiz mumkin). dasturlash tili).
Biz talabalar e'tiborini ushbu turdagi tizimlarni modellashtirishda birinchi navbatda qanday savollar qo'yilishiga qaratamiz. Birinchidan, bu tasodifiy o'zgaruvchilarning o'rtacha qiymatlarini (matematik kutishlarni) hisoblash. Masalan, peshtaxtada navbatda turish uchun o'rtacha vaqt qancha? Yoki: sotuvchi xaridorni kutishga sarflagan o'rtacha vaqtini toping.
O'qituvchining vazifasi, xususan, vositalarning o'zi tasodifiy o'zgaruvchilar ekanligini aniqlashdir; bir xil o'lchamdagi boshqa namunada ular har xil qiymatlarga ega bo'ladi (katta namunali o'lchamlar uchun ular bir -biridan unchalik farq qilmaydi). Boshqa variantlar ham bo'lishi mumkin: ko'proq tayyor auditoriyada ishonch tasodiflari uchun mos keladigan tasodifiy o'zgaruvchilarning matematik kutishlari bo'lgan ishonch oralig'ini baholash usulini ko'rsatish mumkin (matematik statistikadan ma'lum bo'lmagan usullar yordamida). oqlash). Kamroq auditoriyada siz faqat empirik bayonot bilan cheklanishingiz mumkin: agar bir xil o'lchamdagi bir nechta namunalarda o'rtacha qiymatlar o'nli kasrlarda to'g'ri kelgan bo'lsa, demak bu belgi to'g'ri. Agar simulyatsiya kerakli aniqlikka erisha olmasa, namuna hajmini oshiring.
Matematik jihatdan yanada tayyor auditoriyada savol tug'ilishi mumkin: statistik modellashtirish natijasi bo'lgan tasodifiy o'zgaruvchilar, uning kirish parametrlari bo'lgan tasodifiy o'zgaruvchilarning taqsimoti qanday? Tegishli matematik nazariyani taqdim etish imkonsiz bo'lgani uchun, empirik usullar bilan chegaralanish kerak: yakuniy taqsimot gistogrammasini tuzish va ularni bir necha tipik tarqatish funktsiyalari bilan solishtirish.
Belgilangan modellashtirishning asosiy ko'nikmalarini o'zlashtirgandan so'ng, biz, masalan, Puassonga ko'ra, tasodifiy hodisalarning kirish oqimlari taqsimlanadigan, yanada realroq modelga murojaat qilamiz. Bu talabalardan qo'shimcha taqsimot qonuni bilan tasodifiy sonlar ketma -ketligini yaratish usulini qo'shimcha o'zlashtirishni talab qiladi.
Ko'rib chiqilgan masalada, navbatning navbatdagi murakkab muammosida bo'lgani kabi, vaqt o'tishi bilan navbat cheklanmagan holda o'ta muhim vaziyat yuzaga kelishi mumkin. Tanqidiy vaziyatga yondashuvni parametrlardan biri ortishi bilan modellashtirish - eng tayyor talabalar uchun qiziqarli tadqiqot muammosi.
Misol sifatida navbat muammosidan foydalanib, bir vaqtning o'zida bir nechta yangi tushuncha va ko'nikmalar ishlab chiqiladi:
· Tasodifiy jarayonlar haqidagi tushunchalar;
· Simulyatsiya tushunchalari va asosiy ko'nikmalari;
· Optimallashtirish simulyatsiya modellarini qurish;
· Ko'p mezonli modellarni qurish (do'kon egasining manfaatlari bilan birgalikda mijozlarga eng oqilona xizmat ko'rsatish muammolarini hal qilish orqali).
Do'stlaringiz bilan baham: |