چند روز پیش (۲۲ خرداد ۹۸) در مطلب «لطفاً در آزمایش «یافتن کوتاهترین مسیر» شرکت کنید» خواستم که در یک آزمایش شرکت کنید.
در این آزمایش (که از این پس در آدرس کوتاه https://yourl.ir/oracle قابل دسترسی است)، وقتی کاربر وارد آزمایش میشد، به طور تصادفی، یکی از این دو حالت رخ میداد:
- یک گروه از افراد، گراف زیر را میدیدند و از آنها خواسته شده بود که کوتاهترین مسیر در این گراف را بیابند و وقتی مطمئن شدند که کوتاهترین مسیر را یافتهاند در فیلد مربوطه بنویسند و روی پایان کلیک کنند.
- گروه دیگر، همان گراف را میدیدند و از آنها نیز خواسته شده بود که کوتاهترین مسیر را بیابند با این تفاوت که ما قبل از شروع آزمایش و طی کردن مسیرها، به آنها اعلام کرده بودیم که طول کوتاهترین مسیر، ۱۶ است.
همانطور که در مطلب قبل گفته بودم، «یافتن کوتاهترین مسیر بین دو رأس» از مهمترین (یعنی واقعاً مهمترین) مباحث در رشته کامپیوتر است. تمام روترهایی که دادهها را بین شما و سرورِ سایتهایی که میبینید مسیردهی میکنند با الگوریتمهای یافتن کوتاهترین مسیر کار میکنند. اگر در مورد IPv6 که چند سال آینده همه باید با آن کار کنند، چیزهایی شنیده باشید، احتمالاً میدانید که یکی از برتریهای IPv6 به IPv4، همین بهبود در یافتن کوتاهترین مسیر (و یعنی سرعت بیشتر) است...
به هر حال، در طی کردن یک گراف یا پیمایش یک درخت، یکی از حالات این است که ما از قبل بدانیم که طول کوتاهترین مسیر چقدر است؟ اینکه ما به طریقی بفهمیم که کوتاهترین مسیر چقدر بوده، به این دانسته در اصطلاح Oracle گفته میشود.
برای اینکه بدانید داشتن یک Oracle چه تأثیری دارد، به میانگین زمان افرادی که در آن آزمایش شرکت کردند دقت کنید:
همانطور که مشخص است، کسانی که آن گراف را با اوراکل طی کردند، به طور میانگین، حدوداً ۱۰۰ ثانیه طول کشیده تا کوتاهترین مسیر را پیدا کنند و کسانی که بدون اوراکل گراف را پیمایش کردهاند، به طور میانگین، حدوداً ۱۴۰ ثانیه زمان مصرف کردهاند. (در این آزمایش، برای دقیقتر شدن نتایج، فقط بار اولی که اشخاص شرکت کردند ملاک قرار گرفته و اینکه کسانی که زیر ۲۰ ثانیه طول کشیده یا بالای ۶۰۰ ثانیه طول کشیده از نتایج حذف شدهاند که اتفاقاً تعداد این نوع افراد در هر دو گروه یکسان بوده)
به تفاوت دقت کردید؟ این یک گراف ساده بود، در گرافهای پیچیده، اگر ما یک اوراکل داشته باشیم، بسیار سریعتر از حالتی که اوراکل نداریم، کوتاهترین مسیر را پیدا و طی میکنیم.
برای اینکه بهتر متوجه شوید، میتوانید گراف زیر را که تغییر-یافتهی گراف بالا است دوباره طی کنید، من به شما نمیگویم طول کوتاهترین مسیر چقدر است... دقت کنید که مغز شما چقدر بلاتکلیف است! یعنی الان که نمیدانید کوتاهترین مسیر کدام است، مجبورید تمام مسیرها را پیمایش کنید و بعد تصمیم بگیرید. اما اگر کسی که به این مسیرها مسلط بود یا آنها را طی کرده بود و میدانست که طول کوتاهترین مسیر چقدر است، به شما یک اوراکل میداد، شما لازم نبود تمام مسیرها را طی کنید. به محض اینکه میدیدید آن مسیری که اولین بار یا مثلاً دومین بار طی کردهاید، طولش برابر با اوراکل است، میفهمیدید که مسیر را درست طی کردهاید...
میدانید معنی Oracle به فارسی چه میشود؟
اوراکل یعنی «وحی»
همین!
پس، دفعه بعد که کسی از شما پرسید:
چرا خداوند پیامبران را و از طریق آنها «وحی» فرستاده است؟
شما فقط کافیست در مرورگرتان تایپ کنید https://yourl.ir/oracle و از دو نفر بخواهید که در آزمایش یافتن کوتاهترین مسیر شرکت کنند؛ یکی از آنها با اوراکل و یکی بدون اوراکل. انسانِ عاقل خودش خواهد فهمید که «اوراکل» چه کمک بزرگی در یافتن کوتاهترین مسیر تا مقصدِ زندگی و اطمینان از اینکه مسیری که طی میکند صحیح است، خواهد داشت...
برای توضیحات بیشتر، شما را ارجاع میدهم به جلسه ۵ دوره «هوش مصنوعی» دانشگاه MIT که در مطلب «بهترین دوره ویدئویی انگلیسی آموزش هوش مصنوعی» معرفی کرده بودم.
از اوراکلها برای یافتن کوتاهترین مسیرهای زندگی استفاده کنید...
موفق باشید؛
حمید رضا نیرومند