الگوریتم مفهومی بسیار ساده است که البته امروز برداشتهایی بسیار پیچیده از آن به وجود آمده است. الگوریتم، قلب تپنده بسیاری از شبکههای اجتماعی مانند فیسبوک و اینستاگرام است.
به گزارش نووانا،الگوریتم مفهومی بسیار ساده است که البته امروز برداشتهایی بسیار پیچیده از آن به وجود آمده است. الگوریتم، قلب تپنده بسیاری از شبکههای اجتماعی مانند فیسبوک و اینستاگرام استو همین باعث شده که بسیاری به آن به چشم ماهیتی مرموز با کاراییهای ناشناخته نگاه کنند. در واقع الگوریتم اکنون به مترادف چیزی بسیار فنی یا غیر قابل درک تبدیل شده است. برخی به این سر طیف نگاه میکنند و آن را نوعی داور حقیقت به حساب میآورند .
اما وقتی مردم به صحبت راجع به «الگوریتم» میپردازند -چه موضوع صحبت الگوریتمهای پیشنهاد دهنده محتوای شرکتهای تکنولوژی باشد و چه الگوریتم در معنای عمومی- آیا از معنای واقعی آن باخبر هستند؟ با توجه به میزان استفاده از این کلمه و همینطور استفاده نادرست از آن، احتمالا نه. بنابراین میخواهیم در این مقاله به سوالی سرراست پاسخ دهیم: اصلا الگوریتم چیست؟
این مقاله با همکاری پدرو دومینگوز، پروفسور علوم کامپیوتر در دانشگاه واشنگتن تهیه شده. او کسی است که کتاب The Master Algorithm را راجع به نقش الگوریتم در زندگی روزمره ما نوشته.
۱. الگوریتم مجموعهای از دستورالعملهای مشخص است.
امروز معنای الگوریتم به چنین چیزی تغییر کرده: «توالی دستورالعملهایی که به یک کامپیوتر میگویند چه کند». یک برنامه کامپیوتری یک الگوریتم است که با زبان برنامهنویسی کامپیوتری نوشته شده و دستگاه قادر به درک آن زبان و اجرای فرمانهای لازم است.
الگوریتمهایی که به برای کامپیوترها نوشته میشود، ضمنا میتوانند بسیار دقیق باشند و معمولا دستورالعملها با استفاده از عبارات «اگر»، «پس» و «در غیر این صورت» نوشته میشوند.
۲. الگوریتمها قدمتی طولانی دارند.
در دوران تمدن بابل نیز انسانها در حال نوشتن الگوریتم و از استفاده از آن برای حل معادلههای ریاضیاتی بودهاند. همین الگوریتمها بودند که مدیریت جامعه کشاورزی آن زمان را امکانپذیر میکردند. دومینگوز میگوید: «پیش از ظهور کامپیوترها الگوریتم داشتهایم، چون برای اجرای یک الگوریتم نیازی به کامپیوتر ندارید و یک انسان هم میتواند آن را به اجرا بیندازد».
کامپیوترهایی که قادر به اجرای الگوریتمهای مختلف بودند برای نخستین بار در اواسط سده ۲۰ میلادی ظهور کردند، زمانی که ارتش آمریکا شروع به استفاده از فرمولهای ریاضیاتی برای بهبود چیزهایی مانند هدفگیری موشک کرد. این مفهوم بعدا راهش را به مدیریت بازرگانی باز کرد و کامپیوترها، فرمولهای مختلف را برای محاسبه چیزهایی مانند پرداختی کارمندان اجرا میکردند.
۳. امروز الگوریتمها در تمام مسائل کاربرد دارند.
گرچه ممکن است به الگوریتمها به چشم معادلات ریاضیاتی نگاه کنیم، اما به گفته دومینگوز، الگوریتمها «میتوانند هرچیزی را پردازش کنند، گاهی اصلا هیچ اعداد و ارقامی در کار نیست». یکی از برجستهترین و شدیدا پیچیدهترین الگوریتمهای کنونی، الگوریتمی است که بر فید اخبار فیسبوک حکمرانی میکند. فیسبوک از این معادله برای شناسایی و انتخاب محتوایی که به کاربران نشان داده میشود استفاده میکند. به عبارت دیگر، مجموعهای از دستورالعملها تصمیم میگیرند که چه چیزی راهش را به فید اخبار کاربران باز کند.
۴. در الگوریتمهای پیچیده میتوان از “یادگیری ماشینی” استفاده کرد.
همانطور که پیشتر آموختیم، الگوریتمها معمولا باید با جزییات بسیار دقیق و ظریق نوشته شوند تا یک کامپیوتر قادر به درک آنها باشد. اما وقتی توسعهدهندگان شروع به نوشتن الگوریتمهایی میکنند که از یادگیری ماشینی بهرهمند شدهاند، موضوع تغییر میکند. یادگیری ماشینی یک نوع هوش مصنوعی است که تا امروز منجر به خلق برخی از پیچیدهترین الگوریتمهای جهان شده است.
«در برنامهنویسی سنتی، یک انسان باید تمام جزییات کاری که الگوریتم انجام میدهد را بنویسد و این کاری بسیار هزینهبر و زمانبر است.» دومینگوز ادامه میدهد: «یادگیری ماشینی به کامپیوتر اجازه میدهد که خودش الگوریتم خودش را کشف کند و لازم نباشد کسی وظایف را به آن توضیح دهد».
۵. الگوریتمها جادو جمبل نمیکنند!
به لطف حجم خالص اطلاعاتی که الگوریتمها پردازش میکنند، شاید مثل یک جعبه سیاه با انبوهی از رازهای اسرارآمیز به نظر برسند. اما باید به یاد داشت که الگوریتم صرفا مجموعهای از دستورالعملها است. از سوی دیگر، الگوریتمها را انسانها مینویسند و بنابراین احتمال خطا نیز وجود دارد.
انبوهی از برداشتهای اشتباه راجع به الگوریتمها وجود دارد، عمدتا به این خاطر که مردم نمیتوانند ببینند درون یک کامپیوتر چه میگذرد. یک برداشت اشتباه و رایج اینست که مردم فکر میکنند الگوریتمها بینقص هستند.