Algorithm مجموعه ای از دستورالعمل ها است که برای انجام یک کار خاص طراحی شده اند. این می تواند یک فرآیند ساده، مانند ضرب دو عدد، یا یک عملیات پیچیده، مانند پخش یک فایل ویدئویی فشرده باشد.
موتور جستجو (Search Engine) از الگوریتمهای اختصاصی برای نمایش مرتبطترین نتایج جستجوی فهرست مطالب (Index) برای پرس و جو (Query) خاص استفاده میکند.
در برنامهنویسی کامپیوتر، الگوریتمها اغلب ایجاد شده به عنوان تابع (Function). این توابع به عنوان برنامه های کوچکی عمل می کنند که می توانند با برنامه (Program) بزرگتر به آنها ارجاع دهند.
برای مثال، یک تصویر در حال مشاهده برنامه کاربردی (Application) ممکن است شامل کتابخانه ای از توابع باشد که هر کدام از یک الگوریتم سفارشی برای ارائه تصویر متفاوت فرمت فایل (File Format) استفاده می کنند.
نمونههایی از الگوریتمهای پردازش تصویر عبارتند از برش، تغییر اندازه، شفافسازی، محو کردن، کاهش قرمزی چشم، و بهبود رنگ.
بنابراین، برنالگوریتم در حوزههای گوناگون را بررسی میکنیم.
کاربرد الگوریتمها را میتوان بهطور گستردهای در حوزههای مختلف صنعتی برای بهبود کارایی، دقت و تصمیمگیری مشاهده کرد. در ادامه، برخی از کاربردهای مهم آن را آوردهایم.
در این حوزهها و همچنین بسیاری از صنایع دیگر، الگوریتمها نقش مهمی را در خودکارسازی کارها، بهبود تصمیمگیری و افزایش راندمان و کارایی کلی را ایفا میکنند.
بهعنوان مثال، وظیفه الگوریتم تابع
ممکن است این باشد که ۲ عدد را دریافت و با مقایسه آنها، مقدار بیشینه را پیدا کند. ورودیها و
هستند و Algorithm بهدنبال کشف بزرگترین آنها است. فهمیدن این قضیه که Algorithm بیان شده چگونه کار میکند، کار سختی نیست.
الگوریتمی که برنامه فتوشاپ برای برش پسزمینه استفاده میکند، احتمالاٌ تمامی پیکسلهای یک تصویر را پیمایش میکند تا «لبهها» (Edges) یا نواحی «کنتراست» (Contrast) – جاییکه تضاد بالایی در رنگها وجود دارد- را پیدا کند. برای این منظور نیز روشهای شناخته شدهای در پردازش تصویر وجود دارد.
Algorithm «نتفلیکس» (Netflix | سرویس پخش فیلمها و سریالهای تلویزیونی)، ممکن است «دسته» (Category) ویدیوهایی که پیش از این تماشا کردهایم را با دستهبندیهای سایر فیلمهای موجود مقایسه کند، تا از این طریق، پیشنهاد یا «توصیههایی» (Recommendations) را در قالب «سیستمهای توصیهگر» به ما داشته باشد. همچنین ممکن است دادههایی که از ما در اختیار دارد را با دادههای سایر کاربران مقایسه و بر اساس فیلمهایی که آنها تماشا کردهاند، مواردی را به ما توصیه کند. باید توجه داشت که پیشبینی خروجی این الگوریتمها کمی سختتر است.
همانطور که در تعریف «Algorithm» اشاره کردیم، مجموعهای از مراحل یا گامهایی است که بهخوبی (بهطور واضحی) تعریف شدهاند و به منظور دستیابی به نتیجهای برنامهریزی شده میبایست انجام شوند. در حالت کلی، هوش مصنوعی را میتوان برنامهای کامپیوتری، مانند مرورگر فایرفاکس، مایکروسافت ورد و سایر برنامهها در نظر گرفت. بنابراین هر راهکار مربوط به «یادگیری ماشین» و هوش مصنوعی که با آن رو به رو میشویم از ابتدا با استفاده از الگوریتمها ساخته شدهاند.
الگوریتمها، کارهای مختلفی را در هوش مصنوعی و همچنین یادگیری ماشین انجام میدهند. بهطور معمول، این الگوریتمها قوانین، شرایط و روشهایی را تعریف میکنند که یک سیستم هوش مصنوعی در پردازش و تحلیل دادهها از آن استفاده میکند. این قضیه میتواند بهسادگیِ تعریف گامهایی باشد که هوش مصنوعی برای پردازش یک فاکتور میبایست انجام دهد تا فیلتر کردن تصاویر حاوی سگ (مثلاٌ) در دیتاستی که شامل صدها هزار تصویر است.
انواع مسائلی که الگوریتمهای هوش مصنوعی میتوانند حل کنند را میتوان به ۳ دسته کلی تقسیم کرد. این دستهها را در زیر، بیان کردهایم.
اکنون که یادگرفتیم Algorithmچیست و همچنین با کارکرد آن آشنا شدیم، لازم است تا به منظور درک بهتر آن، مثالهایی را با هم مرور کنیم. در ادامه، مثالهای متنوعی از الگوریتمها را آوردهایم.
اگر مهندس نرمافزار هستید یا اینکه قدم در راه یادگیری علم داده گذاشتهاید لازم است تا با برخی از مفاهیم این حوزه همچون «Algorithm» آشنایی داشته باشید. «Algorithm» در واقع، قلب تپنده فناوریهای بالقوه قدرتمندی همچون هوش مصنوعی محسوب میشود و برخی از افراد بهجای اینکه به آینده الگوریتمها فکر کنند، آینده را متعلق به الگوریتمها میدانند.
در این مطلب از مجله فرادرس یادگرفتیم که Algorithmچیست. همچنین تعریف، مثالها و کاربردهای آن را نیز هم در زندگی واقعی و هم در برنامههای کامپیوتری، مورد بررسی قرار دادیم. در انتها نیز تمرینهایی را بیان کردیم که با حل آنها میتوانید توانایی خود را در رابطه با این موضوع مهم بسنجید.
آموزش گامبهگام حذف محدودیت Grace Period در Remote Desktop Services یکی از مشکلات رایج در…
پروتکل Remote Desktop Protocol (RDP) یکی از متداولترین روشها برای مدیریت سرورهای ویندوزی از راه…
شبکه های ارتباطی در طی چند دهه اخیر دچار تحولات بنیادینی شده اند. در آغاز،…
مایکروسافت با انتشار نسخه ی ویندوز سرور 2025، یک بار دیگر ثابت کرده که در…
حملات DDoS (Distributed Denial of Service) یکی از پیچیدهترین و مخربترین تهدیدات سایبری برای وبسایتها…
PyTorch یک چارچوب ماشین لرنیگ اوپن سورس پرکاربرد است که به دلیل سهولت استفاده، نمودار…