هر شخصی در زندگی روزمره خود مجبور به حل تعداد زیادی از وظایف مختلف است. او به فکر حل برخی مشکلات ("خرید مواد غذایی") نیست ، در حالی که برخی دیگر مشکلات و بازتاب طولانی ("جمع آوری مکعب روبیک") را ایجاد می کنند. مثالهای فوق از وظایف ساده و پیچیده مشترک هستند که می توان آنها را به مراحل قابل درک فردی تقسیم کرد. دنباله این مراحل می تواند به عنوان یک یادآوری برای کمک به حل مشکل استفاده شود. این توالی را می توان الگوریتم نامید.
البته ، شما می توانید مکعب روبیک را بدون یادداشت ، فقط با حرکت دادن لبه ها به ترتیب تصادفی جمع کنید. اما برشمردن گزینه های ممکن ممکن است طولانی شود ، این یک روند غیرمولد و غیربهینه خواهد بود. داشتن لیستی از مراحل که اجرای متوالی آنها همیشه به نتیجه مثبت منجر می شود بسیار راحت تر است. همین اصول است که چنین مفهومی را به عنوان "الگوریتم" شکل می دهد.
الگوریتم مجموعه ای از دستورالعمل ها (مراحل) است که ترتیب عملیات مجری را برای دستیابی به نتیجه حل مسئله در تعداد محدودی از اقدامات توصیف می کند.
مجری چیست؟
برای درک بهتر الگوریتم به طور کلی ، در نظر گرفتن مفهوم "مجری الگوریتم" نیز ضروری است. مجری در مفهوم الگوریتم به معنای یک سیستم انتزاعی است که قادر به انجام کنش های توصیف شده توسط الگوریتم و همچنین دارای تعدادی ویژگی است. بعنوان یک مجری ، بیشتر اوقات از یک یا یکی دیگر از وسایل فنی (چاپگر سه بعدی ، دستگاه CNC ، رایانه) استفاده می شود ، با این حال باید درک کرد که این یک مفهوم گسترده است: مجری می تواند مثلاً یک شخص باشد.
با این وجود ، تنها سیستمی که به طور همزمان دارای تعدادی پارامتر باشد ، می تواند اجرا کننده نامیده شود:
- محیط؛
- یک سیستم از دستورات ؛
- اقدامات ابتدایی
- امتناع ، اگر اجرای اقدامات غیرممکن باشد.
خصوصیات الگوریتم
محدودیت های اعمال شده بر مفهوم "مجری" منجر به این واقعیت می شود که مفهوم "الگوریتم" نیز دارای چندین ویژگی و محدودیت است. الگوریتم ها دقیقاً به دلیل این محدودیت ها که به استانداردسازی کمک می کنند ، گسترده شده اند. از جمله خصوصیات الگوریتم ها:
- انبوه (توانایی صحیح الگوریتم برای مجموعه های مختلف داده ورودی)
- اطمینان (در هر مرحله از الگوریتم ، اجرا کننده باید داده کافی برای اجرای آن را داشته باشد) ؛
- جبرگرایی (با همان مجموعه داده های ورودی ، همان نتیجه باید بدست آید) ؛
چرا الگوریتم ها لازم هستند؟
خصوصیات فوق استفاده گسترده از الگوریتم ها را فراهم می کند. بنابراین الگوریتم ها در خدمت استاندارد کردن توصیفات هر فرآیند هستند. بدون الگوریتم ، هر نوع محاسبه غیرممکن است ، و حل هر مشکلی از ابتدا شروع می شود - حتی اگر بارها حل شود. استفاده از الگوریتم ها به شما امکان می دهد به سرعت از همان نوع حل کنید ، زمان صرف شده برای یافتن راه حل را کاهش دهید ، روند یافتن آن را خودکار کنید و همچنین راه حل پیدا شده را به صورت استاندارد توزیع کنید ، به این معنی که همه می توانند آن را درک کنند.