الگوریتم امروز

وبلاگ تخصصی الگوریتم

الگوریتم امروز

وبلاگ تخصصی الگوریتم

وبلاگ علمی و مخصوص مباحث الگوریتمی است.
نظر خصوصی نگذارید چون جواب نمی‌دهم نظر عمومی بگذارید بدون نام هم که باشد همانجا جواب می‌دهم.

بایگانی

۲۴ مطلب در آذر ۱۳۹۲ ثبت شده است

می خواستم یه چیزی پیدا کنم که بشه از روی ترافیک یک نود توی شبکه پیداش کرد. بعد اینو پیدا کردم. (فکر نکنم اونی باشه که می خواستم ولی جالب به نظر می رسه، باشه برای بعدا که بخونمش).

http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4557738&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4557738

http://en.wikipedia.org/wiki/Particle_filter

http://www.stats.ox.ac.uk/~doucet/samsi_course.html


توی زمین اگه گم بشیم بخوایم همین کارو بکنیم (جای یه چیزی رو پیدا کنیم)

http://fa.wikipedia.org/wiki/%D9%86%D8%A7%D9%88%D8%A8%D8%B1%DB%8C_%D9%87%D8%B0%D9%84%D9%88%D9%84%D9%88%DB%8C

http://www.qrg.northwestern.edu/projects/vss/docs/navigation/1-what-is-triangulation.html


این مال wireless sensor network مربوط به همین سواله:

http://cs.illinois.edu/class/fa05/cs598tar/papers/IEEESigProcMag05-Patwari-Localization.pdf


۰ نظر موافقین ۰ مخالفین ۰ ۲۳ آذر ۹۲ ، ۲۱:۲۳
سپیده آقاملائی

درخت بازه و درخت جستجوی با اولویت

http://www.cise.ufl.edu/class/cot5520fa13/CG_WindowingQueriesCh10.pdf

درخت پاره خط ها (سگمنت)

http://www.cise.ufl.edu/class/cot5520fa13/CG_WindowingMoreCh10.pdf

ساختمان داده های هندسی: (این مال یکی دیگه است سر کلاس هم درس نداد. رسما هر ساختمان داده ای که فکر کنید توش هست! آخرین اسلاید یه فهرست داره که لینک به قسمت های دیگه داره.)

http://wwwisg.cs.uni-magdeburg.de/ag/lehre/WS1213/GDS/slides/GeomDS1213.pdf

مرجعش:

http://www.cise.ufl.edu/class/cot5520fa13/

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ آذر ۹۲ ، ۱۵:۳۳
سپیده آقاملائی

این خوب توضیح داده. قسمت آخرش مال تصادفیه. دوگان هم داره که تو هندسه خوندیم. عنوانش هم بهینه سازی ترکیبیاتیه. حالا دیگه خودتون می دونید!

http://sina.sharif.edu/~inoi/books/LP.pdf


خوب نبود پشیمون شدم.

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ آذر ۹۲ ، ۱۳:۵۰
سپیده آقاملائی
ناامید بودن خیلی بده. :)
این آموزش ای سی ام یه دانشگاه که برای کسانی که می خوان تازه شروع کنن خوبه. به پای مال felix halim نمی رسه.
انقدر که دیگه اینها رو نوشتن به درد نمی خوره آدم بنویسدشون دیگه. مساله ها هم دیگه این مدلی نیستن!
این راهنماهای کدفورسز و تاپ کدر هم به درد نمی خوره خیلی بد گفتن. به نظرم بهترش اینه که سوالهای جهانی رو آدم مباحثش رو بگه.
قشنگ یادمه بار اولی که می خواستم سوال dp حل کنم که توش باید جواب backtrack زیر مساله ها رو نگه می داشتی. الآن به نظرم ایده ی یکی از مقاله های دیروز این بود..
۰ نظر موافقین ۰ مخالفین ۰ ۲۰ آذر ۹۲ ، ۱۳:۳۶
سپیده آقاملائی

سر کلاس امروز هندسه محاسباتی تو ارائه ی یکی از بچه ها دیدم اینو. (خیلی بقیه شون نامفهوم بودن!!)

برای مساله یک پارامتر گرفته بود و تابع هزینه رو بر حسب اون به دست آورده بود. بعد با dp روی این پارامتره اومده بود جواب رو به دست آورده بود.

یعنی ایده اش به نظرم به اندازه ی اون باینری سرچ روی مقادیر ارزشمند اومد!


بقیه هم ایده های جالب داشتند:

یکی اومده بود یه مساله ی بدون رنگ رو رنگ آمیزی کرده بود یه طوری که رنگ ها جدا کننده ی مرزهای تصمیم بودند، بعد تابع هدف رو روی اون نسخه ی رنگ آمیزی شده انجام داده بود.


یکی دیگه ایده اش لو رفته بود تقریبا (ساعت قبلش استاد مربوطه درس داد اینو!) این بود که با درخت های بازه ( و سگمنت و امثالهم!) بیایم پوسته محدب بسازیم مثلا. اینم یه جورایی dp است فقط به جای آرایه توی درخته! :))


اون یکی یه کاری روی گراف بود که اومده بود گراف رو به دو قسمت درخت و دور تقسیم کرده بود، برای هر کدوم جواب در آورده بود! البته فکر کنم به نتیجه نرسیده بود! :))


دیگه آخری هم بگم پس: اومده بود زیرمساله ها رو گرفته بود اما مستقل نبودن، بعد تاثیر اون یکی رو توی این اعمال می کرد. کوتاهترین مسیر توی grid بود که توش میومد دایجکسترا(؟!) میزد روی مرز این مربع های کوچکتر کوتاهترین مسیر بین نقاط رو پیدا می کرد. اشکالش هم همین بود که رو هم تاثیر داشتن دیگه، یعنی ممکن بود از توی یه مربع کناری به جواب بهینه ی این مربع فعلی برسی.


میرم مال خودمو درست کنم مثل اینها نشه!

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ آذر ۹۲ ، ۲۰:۴۱
سپیده آقاملائی
۰ نظر موافقین ۰ مخالفین ۰ ۱۸ آذر ۹۲ ، ۱۷:۳۵
سپیده آقاملائی
می خوایم یک عدد تصادفی یکنواخت بسازیم ولی فقط عدد تصادفی سازی داریم که توی کامپیوتر هست. (یک عدد رندم بین 0 و 1 تولید می کنه.)
معمولی که عدد تولید می کنیم خودمون توی برنامه ها (در یک عدد ضرب می کنیم) رندم یکنواخت نیست! :دی دلیل:
خب وقتی یک عدد تصادفی می سازیم احتمال اینکه یه عدد بزرگ ( با تعداد بیت زیاد) درست بشه بیشتر از اینه که عددهای با بیت کمتر ساخته بشن چون تعداد عددهای بزرگ بیشتره.
حالا حالتی رو در نظر بگیرید که بیت بسازیم تا عدد بشه. (حالت مطلوب!) اگر یک سری عدد 0 تا m داشته باشیم که احتمالشون مساوی باشه، باید چطوری بیتها رو رندم انتخاب کنیم؟ دو تا چیز هست که میشه اینجا تغییر داد یکی تعداد بیتهاست اون یکی احتمال 0 و 1 بودنشون.
فعلا فرض کنید احتمال یک بودن هر بیت رو p فرض کنیم. می خوایم به دست بیاریم که چند تا بیت بسازیم که احتمال عددها یکسان بشه.
احتمال ساخته شدن یک عدد k بیتی چقدره؟
(2^k)/m
امید ریاضی تعداد بیتها رو حساب می کنیم:
E(#bits) = sum_k_1_lg(m) (k* (2^k)/m)
ثابت می کنیم تعداد بیتهای عددی که با این روش جدید از روی قبلی می سازیم کمتر از log 1/q میشه که q احتمال رخ دادن اون عدده. می دونیم مجموع احتمالها یک میشه، پس 
?????
۰ نظر موافقین ۰ مخالفین ۰ ۱۲ آذر ۹۲ ، ۲۰:۴۴
سپیده آقاملائی

کیفیتش هم داغونه اصلا خونده نمیشه!

میان ترم الگوریتم تصادفی

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۲ ، ۲۱:۰۴
سپیده آقاملائی
1-
مجموعه ی X را داریم و n عضوی است. مجموعه ی زیر مجموعه های k عضوی X را که اشتراک دو به دوی آنها تهی نباشد، F می نامیم. ثابت کنید تعداد اعضای F از انتخاب k-1 از n-1 کمتر مساوی است.
حل: تعداد کل زیر مجموعه های k عضوی X می شود انتخاب k از n. اگر یک عضو را در همه مشترک بگیریم می شود انتخاب k-1 از n-1. پس این را می شود ساخت باید ثابت کنیم که بهتر از این نمی شود.
یک عضو از F مثلا a را در نظر بگیرید. یک زیرمجموعه از X که با a اشتراک داره رو b بگیرید. می دونیم میشه یه جایگشتی روی a داد که اعضای a اشتراک b همه شون بیفتن ته a و میشه یه جایگشتی روی b داد که این اعضا بیفتن اولش. حالا می خوایم بگیم که تعداد b ها به ازای یک a چندتاست؟
یکی اینکه همه ی جایگشت های a رو حساب کنیم، چون b هم می دونیم k عضویه و فرض هم کردیم که دیگه a و b اشتراکی ندارند، تعداد حالت های b میشه این:
k!*(n-k)!*|F|
کلا (n-1)! جایگشت دوری داریم، حداکثر k تا از اعضای F می تونه توی هر جایگشت دوری اومده باشه، پس در کل میشه:
k* (n-1)!
یعنی عبارت اولیه از عبارت دومیه کمتره. حالا اینو که ساده کنیم به همون چیزی که اول می خواستیم می رسیم.

اثبات های دیگه ی این: http://www.math.ucsd.edu/~ronspubs/90_03_erdos_ko_rado.pdf

2- 
تعداد مسیرهای همیلتونی توی گراف کامل که رندم جهت دهی شده چند تاست؟ (امید ریاضی)
طول هر مسیر = n
احتمال اینکه یک جایگشت از رئوس یک مسیر تشکیل بدن:
(1/2)^n-1
تعداد کل جایگشت ها هم n! تا است. پس کلا میشه:
n!*(1/2)^n-1
3-
گراف n راس و m یال داریم، بزرگترین زیرگراف تهی این گراف بیشتر از n/2d راس دارد. که d = میانگین درجه ی هر راس = 2m/n
زیرگراف تهی یعنی همه ی راسها درجه ی صفر باشند. احتمال اینکه درجه ی یک راس توی زیرگرافی که انتخاب می کنیم صفر بشه
1/(deg(v)+1)
چون باید هیچ کدوم از همسایه های اون راس توی گراف نباشن و خودش باشه.
می خوایم ثابت کنیم که یه چیزی وجود داره که یه چیزی رو بیشتر از یه مقداری داره، یعنی باید امید ریاضی اش رو حساب کنیم بعد بگیم حتما یکی هست که از امید ریاضی بیشتر باشه.
E(X) = E(sigma(Xi)) = sigma(E(Xi)) = sigma(1/(di+1)) >= (n^2) / sigma(di+1) = n^2/(n+2m) = n/(1+d) >= n/(2d)
راه دیگر: با گراف رندمی که احتمال وجود هر راسی p است، (پس احتمال وجود هر یال p2 است) یک سر هر یال را حذف کنیم. X = تعداد راسها و Y = تعداد یالها
E(X-Y) = np-np2 = np(1-p) ==> minimize ==> p = 1/d
4-
ماکسیمم درجه ی گراف رندم با احتمال انتخاب هر یال 1/2
حلش مثل نسبت باینری سرچ به باینری سرچ روی مقادیره. یعنی ماکسیمم درجه رو ازش امید ریاضی گرفته: احتمال اینکه ماکسیمم درجه انقدر باشه ضربدر ماکسیمم درجه. بقیه اش دیگه کار خاصی نبوده اومده اون قسمتی که می خواسته رو احتمالش رو گفته کمتر از یکه و مقدارش هم کمتر از کران بالایی بوده که قبلا با چرنف درآورده بوده. اون یکی تیکه رو هم یه کاری کرده :)
5-
یک مجموعه رو با دو رنگ آبی و قرمز رنگ کردیم، اختلاف تعداد آبی و قرمزها حداکثر چندتاست؟
رندم رنگ می کنیم و آبی = 1 و قرمز = -1. بعد t=2|red|*ln(|blue|) :D
6-
ثابت کنید زمان اجرای quick sort به احتمال یک منهای یک nام O(nlogn) است.
احتمال اینکه طول مسیر از این بیشتر بشه رو حساب می کنیم. باید ببینیم کدوم انتخاب های تصادفی هستند که زمان رو زیاد می کنند (ارتفاع رو زیاد می کنند.) و ثابت کنیم تعدادشون کمه.
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ آذر ۹۲ ، ۱۶:۳۴
سپیده آقاملائی
خوبی این تمرینها این است که همه جواب دارند، نمونه ی امتحانش هم هست.
http://www.cs.helsinki.fi/u/jkivinen
http://www.cs.helsinki.fi/u/jkivinen/opetus/ra1/spring2013
http://www.cs.helsinki.fi/u/jkivinen/opetus/ra1/spring2013/exam-prob.pdf
تا اینجا بهترین منبعی است که من برای الگوریتم تصادفی دیده ام!
(شب میام بقیه اش را اگر رسیدم حل می کنم، الآن فهمیدم دو تا از مباحث امتحان را نخوانده ام!)
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ آذر ۹۲ ، ۱۰:۱۴
سپیده آقاملائی