پروژه ی آمار و احتمال مقدمه در این پروژه قصد داریم یک شبکه اجتماعی را با یک گراف جهت دار مدل کنیم و انتشار اخبار در این شبکه را بررسی کنیم .مدل ما به این شکل است که هر راس نشانگر یک شخص در آن شبکه اجتماعی می باشد و وجود یالی از aبه bبه معنی این است که aصفحه bرا نگاه می کند. برای بررسی انتشار اخبار ,شرایط اولیه ای به شبکه می دهیم ,به این معنی که یک سری از راس ها از آن خبر مطلع می شوند .این راسها به عنوان مبدا آن خبر هستند .سپس بصورت دوره ای ) (turn basedراس ها را بروز رسانی میکنیم. جزییات هر یال در این گراف وزنی دارد .وزن آن پارامتری است که مشخص میکند شخص مبدا طبق چه فرآیندی صفحه شخص مقصد را می بیند .برای مدل کردن این فرآیند باید فرض کنید دیدن صفحه یک فرآیند برنولی است و پارامتر pهمان وزن یال است .یعنی در هر دوره با احتمال pصفحه مقصد را نگاه می کند( .اگر فرآیند را با فرآیند پواسون مدل کنید ,نمره اضافی دارد) . خبرها نیز انواع مختلفی دارند .تفاوت خبرها در نرخ انتشار آنهاست .به این معنی که اشخاص مختلف پس از مشاهده خبرهای از نوعهای مختلف ،آنها را با احتماالت متفاوتی به اشتراک میگذارند .به این معنی که هر شخص در هر دوره ,به صفحاتی رجوع خواهد کرد (البته ممکن است در بعضی دور ها اصال رجوع نکند) .اگر آن شخص تا به حال از خبر مطلع نشده باشد و به صفحه ای رجوع کرد که آن صفحه آن خبر را به اشتراک گذاشته است ( دقت کنید که دانستن کافی نیست ,یعنی شخصی که به آن رجوع شده ,باید هم بداند خبر را و هم آنرا به اشتراک گذاشته باشد) او هم از آن خبر مطلع خواهد شد .حال که از آن خبر مطلع شد ,با احتمال rate_iآن خبر را در دور بعدی به اشتراک خواهد گذاشت .که اینجا iنشان دهنده نوع خبر است .در این پروژه 4نوع خبر خواهیم داشت و از این رو هر راس 4 ,فیلد از نوع doubleدارد که نشاندهنده احتمال بازنشر خبرهای از انواع مختلف توسط آن کاربر است .توجه کنید که هر کاربر تنها در اولین دفعهای که یک خبر را مشاهده میکند در مورد بازنشر آن تصمیم میگیرد و اگر تصمیم به عدم نشر آن خبر گرفت در دفعات بعد که آن خبر را در صفحات دیگران میبیند نیز آن خبر را بازنشر نمیدهد. فرمت ورودی ورودی هایی که به شما داده می شود ,متشکل از 3فایل متنی به نام های Edgesو Nodesو Seedمی باشد .دو فایل اول مدلی که برای شبکه اجتماعی در نظر داریم را مشخص میکنند و فایل سوم شرایط اولیه انتشار یک خبر را مشخص میسازد. در فایل راس ها ,هر خط یک راس را تعریف میکند .به این شکل که : NodeIndex NodeClass Rate1 Rate2 Rate3 Rate4 دقت کنید که اندیس راس یک متغیر از نوع intهست و کالس راس ) ) Node Classاز نوع Stringمی باشد و شما فقط کافی است در پیاده سازی تان فیلدی جهت ذخیره آن تعبیه کنید .کاربرد آن این است که بتوانیم دسته خاصی از راسها را بطور مجزا تحلیل کنیم. در فایل یالها ,هر خط یک یال را تعریف میکند .به این شکل که: SrcIndex DestIndex EdgeParameter پارامتر یال (وزن یال) همان احتمال رجوع در هر دور است( .اگر رجوع کردن را با پواسون مدل کردید ,این پارامتر فرآیند پواسونتان خواهد بود)و در فایل : Seed NewsType Node1Index Node2Index ... NodeKIndex این فایل فقط یک خط دارد و در آن ابتدا نوع خبر (عددی صحیح بین 1تا ) 4و سپس تعدادی عدد می آید که هر کدام اندیس یک راس است .این راس ها مبدا خبر خواهند بود. خروجی برنامه شما باید نهایتن به عنوان خروجی ,نمودار تعداد راس هایی که از خبر اطالع یافته اند را بر حسب زمان رسم کند. همچنین باید بتواند بطور همزمان برای Classهای مختلف از راس ها ( اگر یادتان باشد گفتیم برای هر راس یک کمیت از جنس رشته بعنوان Classدر ورودی به شما داده می شود ).تعداد باخبر ها بر حسب زمان را روی یک نمودار رسم کند (با رنگ های مختلف) .با این کار میتوانیم سرعت انتشار خبر را برای دسته های مختلف از کاربران مقایسه کنیم .این افراز کاربران مثلن می تواند بر اساس رده سنی ,یا میزان تحصیالت ,یا ملیت باشد. دقت کنید که بخش رسم نمودارتان می تواند با یک برنامه دیگر باشد .مثلن میتوانی کد اصلی تان را با جاوا بزنید و برنامه جاوا شما داده ها (یعنی تعداد بر حسب زمان ).را بشکل متنی در یک فایل txtذخیره کند ,و برنامه دیگری به متلب یا پایتون آماده کنید که فایل داده ها را بعنوان ورودی بگیرد و نمودار ها را رسم کند. درصد امتیاز هر بخش پیاده سازی کلی شبکه (بدون خروجی) 02 : داشتن خروجی به شکل متن 02 : رسم نمودار تعداد کل با خبر ها بر حسب زمان02 : رسم تعداد باخبر ها بر حسب زمان برای دسته های مختلف روی یک نمودار42 : کار های اضافه (مثل پیاده سازی مشاهده صفحات با فرآیند پواسون) +02 :
© Copyright 2025 Paperzz