موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

دا زموږ لپاره مهمه ده چې پوه شو چې زموږ زده کونکو ته د روزنې پرمهال څه پیښیږي او دا پیښې څنګه پایله اغیزه کوي ، نو موږ د پیرودونکي سفر نقشه رامینځته کوو - د پیرودونکي تجربې نقشه. په هرصورت، د زده کړې بهیر یو څه دوامداره او بشپړ نه دی، دا د زده کونکي د یو بل سره تړلي پیښو او کړنو سلسله ده، او دا کړنې د مختلفو زده کونکو ترمنځ خورا توپیر لري. اوس هغه خپل درس بشپړ کړ: هغه به بیا څه وکړي؟ ایا دا د کور کار ته ځي؟ ایا دا به یو ګرځنده اپلیکیشن پیل کړي؟ ایا هغه به کورس بدل کړي، د ښوونکو د بدلولو غوښتنه وکړي؟ ایا تاسو به مستقیم راتلونکي درس ته لاړ شئ؟ یا به هغه یوازې مایوسه پریږدي؟ ایا دا ممکنه ده چې د دې نقشې په تحلیل سره، هغه نمونې وپیژني چې د کورس بریالیتوب پای ته ورسوي یا په برعکس، د زده کونکي "شاید" ته؟

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

عموما، د CJM جوړولو لپاره ځانګړي، خورا ګران تړل شوي سرچینې وسیلې کارول کیږي. مګر موږ غوښتل چې یو څه ساده سره راشي، لږترلږه هڅې ته اړتیا لري او که امکان ولري، خلاصې سرچینې. نو د مارکوف زنځیرونو کارولو مفکوره راپورته شوه - او موږ بریالي شو. موږ یوه نقشه جوړه کړه، د ګراف په بڼه د زده کونکو د چلند په اړه معلومات تشریح کړل، د نړیوالو سوداګریزو مسلو لپاره په بشپړه توګه غیر څرګند ځوابونه ولیدل، او حتی ژور پټ کیګونه مو وموندل. موږ دا ټول د خلاصې سرچینې پیتون سکریپټ حلونو په کارولو سره ترسره کړل. پدې مقاله کې به زه د دې خورا غیر څرګند پایلو سره د دوه قضیو په اړه وغږیږم او سکریپټ له هرچا سره شریک کړم.

نو، د مارکوف زنځیرونه د پیښو تر مینځ د لیږد احتمال ښیي. دلته د ويکيپېډيا څخه يو ابتدايي بېلګه ده:

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

دلته "E" او "A" پیښې دي، تیر د دوی تر مینځ لیږدونه دي (د پیښې څخه ورته لیږد په شمول)، او د تیرونو وزن د لیږد احتمال دی ("وزن شوي لارښود ګراف").

تاسو څه کارولي؟

سرکټ د معیاري Python فعالیت سره روزل شوی و، کوم چې د زده کونکو فعالیتونو لاګونو سره تغذیه شوی و. د نتیجې میټرکس ګراف د NetworkX کتابتون لخوا جوړ شوی.

لاګ داسې ښکاري:

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

دا د csv فایل دی چې د دریو کالمونو جدول لري: د زده کونکي id، د پیښې نوم، د پیښې وخت. دا درې ساحې کافي دي چې د پیرودونکي حرکتونه تعقیب کړي، نقشه جوړه کړي او بالاخره د مارکوف سلسله ترلاسه کړي.

کتابتون جوړ شوي ګرافونه په .dot یا .gexf بڼه راګرځوي. د پخواني لیدلو لپاره، تاسو کولی شئ د وړیا ګرافویز کڅوړه (gvedit وسیله) وکاروئ، موږ د .gexf او Gephi سره کار کړی، هم وړیا.

بیا زه غواړم د مارکوف زنځیرونو کارولو دوه مثالونه وړاندې کړم، کوم چې موږ ته اجازه راکړه چې خپلو اهدافو، تعلیمي پروسو، او پخپله د سکاینګ ایکوسیستم په اړه تازه نظر واخلو. ښه، کیچونه حل کړئ.

لومړی قضیه: ګرځنده غوښتنلیک

د پیل کولو لپاره، موږ د زده کونکي سفر زموږ د خورا مشهور محصول - عمومي کورس له لارې وپلټئ. په هغه وخت کې، زه د سکاینګ د ماشومانو په څانګه کې کار کوم او موږ غوښتل چې وګورو چې ګرځنده غوښتنلیک زموږ د ماشومانو لیدونکو سره څومره اغیزمن کار کوي.

د لاګونو اخیستل او د سکریپټ له لارې یې چلول ، ما داسې یو څه ترلاسه کړل:

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

د پیل کولو نوډ د سټارټ عمومي دی، او په پای کې درې محصول نوډونه شتون لري: زده کونکی "ویده شو،" کورس بدل کړ، او کورس یې پای ته ورساوه.

  • ویده شو، "ویده شو" - دا پدې مانا ده چې هغه نور ټولګي نه اخلي، ډیری احتمال چې هغه راوتلی. موږ په خوشبینه توګه دې حالت ته "خوب" وایو، ځکه چې ... په تیوري کې، هغه لاهم فرصت لري چې خپلو زده کړو ته دوام ورکړي. زموږ لپاره بده پایله.
  • جنرال ګوښه شو، کورس بدل شو - له جنرال څخه بل څه ته بدل شو او زموږ د مارکوف سلسله ورک شو.
  • کورس پای ته رسیدلی، کورس پای ته رسیدلی - مثالی حالت، شخص 80٪ درسونه بشپړ کړي (ټول درسونه اړین ندي).

د بریالي ټولګي نوډ ته د رسیدو معنی دا ده چې زموږ په پلیټ فارم کې د ښوونکي سره یوځای درس په بریالیتوب سره بشپړ کړئ. دا د کورس په اوږدو کې پرمختګ ثبتوي او مطلوب پایلې ته رسیدل - "کورس بشپړ شوی." دا زموږ لپاره مهمه ده چې زده کونکي د امکان تر حده ګډون وکړي.

د ګرځنده اپلیکیشن (د اپلیکیشن سیشن نوډ) لپاره د لا دقیقو کمیتي پایلو ترلاسه کولو لپاره ، موږ د هر وروستي نوډونو لپاره جلا زنځیرونه جوړ کړل او بیا یې د څنډې وزنونه په ګډه پرتله کړل:

  • د اپلیکیشن سیشن څخه بیرته دې ته؛
  • د اپلیکیشن ناستې څخه بریالي ټولګي ته؛
  • له بریالي ټولګي څخه د اپل سیشن پورې.

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره
په ښي خوا کې هغه زده کونکي دي چې کورس یې بشپړ کړی، په ښي خوا کې هغه کسان دي چې "ویده شوي"

دا درې څنډې د زده کونکي بریالیتوب او د ګرځنده اپلیکیشن کارولو ترمینځ اړیکه ښیې. موږ تمه درلوده چې وګورو هغه زده کونکي چې کورس یې بشپړ کړی به د غوښتنلیک سره قوي اړیکه ولري د هغو زده کونکو په پرتله چې ویده شوي وي. په هرصورت، په حقیقت کې موږ په سمه توګه برعکس پایلې ترلاسه کړې:

  • موږ ډاډ ترلاسه کړ چې د کاروونکو مختلف ګروپونه د ګرځنده غوښتنلیک سره په مختلف ډول تعامل کوي؛
  • بریالي زده کونکي د ګرځنده اپلیکیشن لږ شدت کاروي؛
  • هغه زده کونکي چې خوب کوي د ګرځنده اپلیکیشن ډیر فعاله کاروي.

دا پدې مانا ده چې هغه زده کونکي چې ویده کیږي ډیر او ډیر وخت په ګرځنده اپلیکیشن کې تیروي او په پایله کې د تل لپاره په دې کې پاتې کیږي.

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

په لومړي سر کې موږ حیران وو، مګر د دې په اړه فکر کولو وروسته، موږ پوهیږو چې دا یو بشپړ طبیعي اغیزه وه. په یو وخت کې، ما پخپله فرانسوي ژبه د دوو وسیلو په کارولو سره زده کړه: یو ګرځنده غوښتنلیک او په یوټیوب کې د ګرامر لیکچرونه. په لومړي سر کې ما د دوی ترمنځ وخت د 50 څخه تر 50 پورې تقسیم کړ. مګر غوښتنلیک ډیر په زړه پورې دی، ګیمیفیکیشن شتون لري، هر څه ساده، چټک او روښانه دي، مګر په لیکچر کې تاسو باید هغه ته پام وکړئ، یو څه ولیکئ. په نوټ بوک کې تمرین وکړئ. په تدریجي ډول، ما په خپل سمارټ فون کې ډیر وخت تیرولو پیل وکړ، تر هغه چې د هغې ونډه 100٪ ته لوړه شوه: که تاسو په دې کې درې ساعته مصرف کړئ، تاسو د بشپړ شوي کار غلط احساس رامینځته کوئ، ځکه چې تاسو هیڅ شی ته د تګ او اوریدلو لیوالتیا نه لرئ. .

مګر دا څنګه کیدی شي؟ په هرصورت، موږ په ځانګړې توګه یو ګرځنده اپلیکیشن جوړ کړ، په دې کې د ایبنګهاوس وکر جوړ شوی، دا یې ګیم کړی ، دا یې زړه راښکونکی کړی ترڅو خلک پدې کې وخت تیر کړي ، مګر دا معلومه شوه چې دا یوازې دوی ته پام کوي؟ په حقیقت کې، دلیل دا دی چې د ګرځنده اپلیکیشن ټیم د خپلو دندو سره خورا ښه مقابله وکړه، چې په پایله کې دا یو ښه، په ځان بسیا محصول شو او زموږ د ایکوسیستم څخه وتل پیل کړل.

د څیړنې په پایله کې، دا څرګنده شوه چې د ګرځنده اپلیکیشن یو څه بدلولو ته اړتیا لري ترڅو دا د مطالعې اصلي کورس څخه لږ پام وکړي. او دواړه ماشومان او لویان. دا کار اوس مهال روان دی.

دوهمه قضیه: آن بورډینګ کیګونه

آن بورډینګ یو اختیاري اضافي کړنلاره ده کله چې د نوي زده کونکي راجستر کول په راتلونکي کې احتمالي تخنیکي ستونزې له مینځه وړي. اساسی سناریو داسې انګیرل کیږي چې یو شخص د لینډینګ پا pageې کې راجستر شوی ، خپل شخصي حساب ته لاسرسی موندلی ، اړیکه نیول کیږي او تعارفي درس ورکول کیږي. په ورته وخت کې، موږ د ابتدايي درس په جریان کې د تخنیکي ستونزو لویه سلنه یادونه کوو: د براوزر غلط نسخه، مایکروفون یا غږ کار نه کوي، ښوونکی سمدلاسه د حل وړاندیز نشي کولی، او دا ټول په ځانګړې توګه ستونزمن دي کله چې دا راځي. ماشومانو ته. له همدې امله، موږ ستاسو په شخصي حساب کې یو اضافي غوښتنلیک رامینځته کړی، چیرې چې تاسو کولی شئ څلور ساده مرحلې بشپړې کړئ: خپل براوزر، کیمره، مایکروفون وګورئ او تایید کړئ چې مور او پالر به د ابتدايي درس په جریان کې نږدې وي (په هرصورت، دوی هغه څوک دي چې پیسې ورکوي. د دوی د ماشومانو زده کړه).

دا څو آن بورډینګ پا pagesې د دې په څیر فینل ښیې:

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره
1: د پیل کولو بلاک د دریو لږ توپیرونو سره (د پیرودونکي پورې اړه لري) د ننوتلو او پټنوم د ننوتلو فارمونو سره.
2: چک بکس د اضافي داخلیدو پروسې سره موافق دی.
2.1-2.3: د والدین شتون، د کروم نسخه او غږ وګورئ.
3: وروستی بلاک.

دا خورا طبیعي ښکاري: په لومړیو دوو مرحلو کې، ډیری لیدونکي پریږدي، پدې پوهیدل چې د ډکولو لپاره یو څه شتون لري، چک، مګر وخت شتون نلري. که چیرې پیرودونکی دریم پړاو ته رسیدلی وي، نو هغه به تقریبا حتمي پای ته ورسیږي. په فینل کې د کوم شی شک کولو لپاره یو دلیل شتون نلري.

په هرصورت، موږ پریکړه وکړه چې زموږ آن بورډینګ په کلاسیک یو اړخیز فینل کې نه، بلکې د مارکوف سلسلې په کارولو سره تحلیل کړو. موږ یو څه نور پیښې بدلې کړې ، سکریپټ مو واخیست او دا مو ترلاسه کړل:

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

په دې ګډوډۍ کې، یوازې یو شی په روښانه توګه پوهیدلی شي: یو څه غلط شوی. د بورډ کولو پروسه خطي ده، دا په ډیزاین کې شامله ده، په دې کې باید د اړیکو هیڅ ډول ویب نه وي. او دلته دا سمدلاسه روښانه ده چې کارونکي د مرحلو تر مینځ غورځول شوي ، چې په مینځ کې باید هیڅ لیږد شتون ونلري.

موږ څنګه د مارکوف زنځیرونه د حلونو ارزولو او د کیګونو موندلو کې کاروو. د Python سکریپټ سره

د دې عجیب انځور دوه دلیلونه کیدی شي:

  • شوالونه د لاګ ډیټابیس ته ننوتل؛
  • پخپله محصول کې غلطۍ شتون لري - آن بورډینګ.

لومړی دلیل خورا احتمال ریښتیا دی، مګر دا ازموینه خورا سخت کار دی، او د لاګونو سم کول به د UX ښه کولو کې مرسته ونکړي. مګر د دوهم سره، که دا شتون ولري، یو څه باید په چټکۍ سره ترسره شي. له همدې امله، موږ د نوډونو د لیدلو لپاره لاړ شو، هغه څنډې وپیژنو چې باید شتون ونلري، او د دوی د واقع کیدو لاملونه وګورو. موږ ولیدل چې ځینې کاروونکي ودرول شول او په حلقو کې وګرځیدل، نور له مینځ څخه پیل ته راوتلي، او نور، په اصولو کې، نشي کولی له لومړیو دوو مرحلو څخه ووځي. موږ معلومات QA ته انتقال کړل - او هو، دا معلومه شوه چې په بورډینګ کې کافي بګونه شتون لري: دا یو ډول ضمني محصول دی، یو څه کرچ دی، دا په کافي اندازه ژوره ازموینه نه وه شوې، ځکه چې ... موږ د کومې ستونزې تمه نه درلوده. اوس د ثبت کولو ټوله پروسه بدله شوې.

دا کیسه موږ ته د QA په ساحه کې د مارکوف زنځیرونو غیر متوقع غوښتنلیک وښود.

دا پخپله هڅه وکړئ!

ما خپل پوسټ کړی د مارکوف زنځیرونو روزنې لپاره د پایتون سکریپټ په عامه ډومین کې - دا د خپل روغتیا لپاره وکاروئ. په GitHub کې اسناد، پوښتنې دلته پوښتل کیدی شي، زه به هڅه وکړم چې هر څه ته ځواب ووایم.

ښه، ګټور لینکونه: د شبکې ایکس کتابتون, د ګراف ویز لیدونکی. او دلته د Habré په اړه یوه مقاله ده د مارکوف زنځیرونو په اړه. په مقاله کې ګرافونه په کارولو سره جوړ شوي ګیفي.

سرچینه: www.habr.com

Add a comment