خاصیتی که الگوریتم همیشه به آن منتهی می شود.ویژگی های اساسی الگوریتم. تعریف به کدام ویژگی الگوریتم اشاره دارد؟

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

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

    این اصطلاح معانی دیگری دارد، به مریخ (معانی) مراجعه کنید. MARS ایجاد: 1998 انتشار: 1998 اندازه کلید ... ویکی پدیا

    این اصطلاح معانی دیگری دارد، به مریخ (معانی) مراجعه کنید. MARS ایجاد: 1998 ... ویکی پدیا

    این اصطلاح معانی دیگری دارد، به الگوریتم (معانی) مراجعه کنید. برای بهبود این مقاله، آیا مطلوب است؟: دوباره طراحی را مطابق با قوانین ... ویکی پدیا

    این مقاله حاوی مطالبی از این نسخه از مقاله ویکی‌پدیای انگلیسی مربوطه است. تبدیل عملیاتی (OT) یک فناوری برای پشتیبانی از طیف وسیعی از عملکردهای همکاری در سیستم های پیشرفته است... ... ویکی پدیا

    الگوریتم‌های جستجوی نمودار A* B* الگوریتم بلمن فورد جستجوی دوطرفه الگوریتم دایکسترا الگوریتم جانسون جستجوی عرض-اول جستجوی عمق-اول جستجوی محدود-عمق جستجوی اول-بهترین جستجوی جستجوی الگوریتم فلوید وارشال جستجو... ... ویکی پدیا

    این یک الگوریتم برای مرتب کردن عناصر در یک لیست است. هنگامی که یک آیتم فهرست دارای چندین فیلد باشد، فیلدی که به عنوان معیار ترتیب عمل می کند، کلید مرتب سازی نامیده می شود. در عمل اغلب از یک عدد به عنوان کلید استفاده می شود و در زمینه های دیگر... ... ویکی پدیا

    BMW (eng. BMW Blue Midnight Wish) یک تابع هش رمزنگاری (hf) با خروجی n بیت است که n=224256، 384 یا 512 است. طول بیت..... ... ویکی پدیا

    این مقاله باید ویکی شده باشد. لطفاً آن را طبق قوانین قالب بندی مقاله قالب بندی کنید. این اصطلاح معانی دیگری دارد، به TEA (معانی) ... ویکی پدیا مراجعه کنید

کتاب ها

  • منطق لوکاسیویچ و اعداد اول، A. S. Karpenko، برای اولین بار در ادبیات جهان، یک مطالعه تک نگاری ارتباط مستقیمی بین منطق و اعداد اول برقرار می کند. اگرچه منطق های پرارزش لوکاسیویچ نتیجه ردیه ای بود... دسته: منطق ناشر: Librocom,
  • منطق در پرسش و پاسخ کتاب درسی، کوبزار ولادیمیر ایوانوویچ، کتاب درسی مطابق با برنامه درس منطق رسمی سنتی (عمومی، فلسفی) نوشته شده است. به بررسی اشکال و روش های اساسی فعالیت ذهنی، آنها می پردازد.

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

در این مقاله به مفاهیم اساسی الگوریتم خواهیم پرداخت.

تاریخچه ظهور الگوریتم ها

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

در قرن دوازدهم کتاب «درباره حسابداری هندی» به لاتین ترجمه شد و از آن زمان بود که این تعریف ظاهر شد.

تعامل الگوریتم با انسان و ماشین

ایجاد یک الگوریتم نیاز به خلاقیت دارد، بنابراین فقط یک موجود زنده می تواند لیست جدیدی از اقدامات متوالی ایجاد کند. اما برای اجرای دستورالعمل‌های موجود، نیازی به تخیل ندارید؛ حتی فناوری بی‌روح نیز می‌تواند از عهده این امر برآید.

یک مثال عالی از پیروی دقیق از دستورالعمل ها، یک اجاق مایکروویو خالی است که علیرغم وجود نداشتن مواد غذایی در داخل، به کار خود ادامه می دهد.

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

تقریباً همه چیز در دنیای ما تابع قوانین و قوانینی است. علم مدرن هنوز ایستاده نیست، به لطف آن، بشر فرمول ها و الگوریتم های زیادی را می شناسد، به دنبال آنها می توان بسیاری از اعمال و خلاقیت های طبیعت را محاسبه و بازآفرینی کرد و ایده های اختراع شده توسط انسان را زنده کرد. در این مقاله به مفاهیم اساسی الگوریتم خواهیم پرداخت.

الگوریتم چیست؟

بیشتر اعمالی که در طول زندگی انجام می دهیم مستلزم رعایت تعدادی از قوانین است. کیفیت و نتیجه انجام وظایف محول شده به او بستگی به این دارد که فرد چقدر درست تصور کند که چه کاری، چگونه و در چه ترتیبی باید انجام دهد. والدین از دوران کودکی سعی در ایجاد الگوریتمی برای اقدامات اساسی کودک خود داشته اند، به عنوان مثال: بیدار شدن از خواب، مرتب کردن رختخواب، شستن و مسواک زدن دندان ها، انجام تمرینات ورزشی، صرف صبحانه و غیره، لیستی که فرد تمام کارهای خود را انجام می دهد. زندگی در صبح را نیز می توان نوعی الگوریتم در نظر گرفت.

اینکه کدام روش مورد استفاده قرار می گیرد به عوامل مختلفی بستگی دارد: پیچیدگی مسئله، میزان جزئیات فرآیند حل مسئله و غیره.

نسخه گرافیکی الگوریتم

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

آنها به طور تصادفی به تصویر کشیده نشده اند. برای اینکه همه آنها را بفهمند، نمودارهای بلوکی و نمودارهای ساختاری Nussi-Schneiderman اغلب مورد استفاده قرار می گیرند.

همچنین، نمودارهای بلوک مطابق با GOST-19701-90 و GOST-19.003-80 به تصویر کشیده شده است.
ارقام گرافیکی مورد استفاده در الگوریتم به دو دسته تقسیم می شوند:

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

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

در یک الگوریتم گرافیکی، بلوک هایی که برای نمایش داده ها استفاده می شوند، بلوک نامیده می شوند.

همه بلوک ها به ترتیب "از بالا به پایین" و "از چپ به راست" می روند - این جهت صحیح جریان است. با توالی صحیح، خطوط متصل کننده بلوک ها جهت را نشان نمی دهند. در موارد دیگر، جهت خطوط با استفاده از فلش ها نشان داده می شود.

یک طرح الگوریتم صحیح نباید بیش از یک خروجی از بلوک های پردازشی و کمتر از دو خروجی از بلوک های مسئول بررسی تحقق شرایط داشته باشد.

چگونه یک الگوریتم درست بسازیم؟

ساختار الگوریتم، همانطور که در بالا ذکر شد، باید مطابق با GOST ساخته شود، در غیر این صورت برای دیگران قابل درک و در دسترس نخواهد بود.

روش کلی ثبت شامل نکات زیر است:

نامی که مشخص می کند با استفاده از این طرح چه مشکلی را می توان حل کرد.

هر الگوریتم باید شروع و پایان مشخصی داشته باشد.

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

هنگام کامپایل یک الگوریتم، باید به اقداماتی توجه کنید که به شما امکان می دهد اقدامات لازم برای حل مشکل را روی داده های انتخاب شده انجام دهید. نمونه ای از الگوریتم:

  • نام طرحواره.
  • داده ها.
  • شروع کنید.
  • تیم ها
  • پایان.

ساخت صحیح مدار محاسبه الگوریتم ها را بسیار تسهیل می کند.

اشکال هندسی مسئول اعمال مختلف در الگوریتم هستند

یک بیضی افقی ابتدا و انتهای آن است (نشانه ای از اتمام).

مستطیل افقی یک محاسبه یا عمل دیگر (علامت فرآیند) است.

متوازی الاضلاع افقی - ورودی یا خروجی (علامت داده).

الماسی که به صورت افقی قرار دارد یک بررسی وضعیت (علامت راه حل) است.

یک شش ضلعی دراز و افقی یک تغییر است (نشانه ای از آمادگی).

مدل های الگوریتم در شکل زیر ارائه شده است.

نسخه فرمول-کلامی ساخت الگوریتم.

الگوریتم‌های فرمول-کلامی به شکل آزاد و به زبان حرفه‌ای رشته‌ای که مشکل به آن مربوط می‌شود، نوشته شده‌اند. شرح اقدامات در این روش با استفاده از کلمات و فرمول ها انجام می شود.

مفهوم الگوریتم در علوم کامپیوتر

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

ایجاد و استفاده از الگوریتم‌ها در علوم کامپیوتر فرآیند خلاقانه‌تری نسبت به دنبال کردن دستورالعمل‌های حل مسئله در ریاضیات است.

همچنین یک برنامه ویژه به نام "الگوریتم" وجود دارد که به افرادی که با برنامه نویسی آشنایی ندارند کمک می کند تا برنامه های خود را ایجاد کنند. چنین منبعی می تواند به یک دستیار ضروری برای کسانی تبدیل شود که اولین گام های خود را در علوم کامپیوتر برمی دارند و می خواهند بازی های خود یا هر برنامه دیگری را ایجاد کنند.

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

نتیجه

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

مفهوم الگوریتم. ویژگی های الگوریتم. انواع الگوریتم ها روش های توصیف الگوریتم ها

یک الگوریتم یک دستورالعمل دقیق و قابل درک به یک مجری برای انجام دنباله ای از اقدامات با هدف حل یک مسئله معین است. کلمه "الگوریتم" از نام ریاضیدان الخوارزمی گرفته شده است که قوانین انجام عملیات حسابی را تدوین کرده است. در ابتدا، یک الگوریتم فقط به معنای قوانین انجام چهار عمل حسابی روی اعداد بود. بعداً، این مفهوم به طور کلی برای نشان دادن توالی اقداماتی که منجر به حل هر کار معین می شود مورد استفاده قرار گرفت. هنگام صحبت در مورد الگوریتم فرآیند محاسباتی، لازم است درک کنیم که اشیایی که الگوریتم روی آنها اعمال شده است، داده است. یک الگوریتم برای حل یک مسئله محاسباتی مجموعه ای از قوانین برای تبدیل داده های منبع به نتایج است.

اصلی خواص الگوریتم ها عبارتند از:

  1. جبر (قطعیت). این فرض به دست آوردن یک نتیجه بدون ابهام از یک فرآیند محاسباتی با داده های اولیه داده شده است. با توجه به این ویژگی، فرآیند اجرای الگوریتم ماهیت مکانیکی دارد.
  2. اثربخشی. وجود چنین داده‌های اولیه‌ای را نشان می‌دهد که فرآیند محاسباتی پیاده‌سازی شده طبق یک الگوریتم معین باید پس از تعداد محدودی از مراحل متوقف شود و نتیجه دلخواه را ایجاد کند.
  3. شخصیت توده ای این ویژگی نشان می دهد که الگوریتم باید برای حل تمام مسائل از یک نوع معین مناسب باشد.
  4. گسستگی این به معنای تقسیم فرآیند محاسباتی تعیین شده توسط الگوریتم به مراحل جداگانه است که توانایی انجام آن توسط مجری (رایانه) بدون شک است.

الگوریتم باید طبق قوانین خاصی با استفاده از ابزار بصری خاص رسمیت یابد. این شامل روش‌های زیر برای نوشتن الگوریتم‌ها می‌شود: کلامی، فرمول-کلامی، گرافیکی، زبان طرح عملگر، زبان الگوریتمی.

متداول ترین، به دلیل وضوح، روش گرافیکی (بلوک دیاگرام) الگوریتم های ثبت است.

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

با همه الگوریتم های مختلف برای حل مسائل، سه نوع اصلی از فرآیندهای محاسباتی را می توان تشخیص داد:

  • خطی؛
  • انشعاب؛
  • چرخه ای

خطی یک فرآیند محاسباتی است که در آن تمام مراحل حل یک مسئله به ترتیب طبیعی ثبت این مراحل انجام می شود.

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

چرخه بخشی از محاسبات است که بارها تکرار می شود. فرآیند محاسباتی شامل یک یا چند چرخه نامیده می شود چرخه ای . بر اساس تعداد اجراها، چرخه ها به چرخه هایی با تعداد تکرار معین (از پیش تعیین شده) و چرخه هایی با تعداد تکرار نامحدود تقسیم می شوند. تعداد تکرارهای دومی بستگی به ارضای شرایطی دارد که نیاز به اجرای چرخه را مشخص می کند. در این صورت، شرط را می توان در ابتدای چرخه بررسی کرد - سپس در مورد یک چرخه با یک پیش شرط صحبت می کنیم، یا در پایان - آنگاه یک چرخه با یک پس شرط است.

ویژگی های الگوریتم ها

تعریف الگوریتم ارائه شده در بالا را نمی توان سخت تلقی کرد - کاملاً مشخص نیست که "نسخه دقیق" یا "توالی اقداماتی که نتیجه مورد نیاز را تضمین می کند" چیست. بنابراین، معمولاً چندین ویژگی کلی الگوریتم ها برای تمایز الگوریتم ها از سایر دستورالعمل ها فرموله می شوند.

این خواص عبارتند از:

گسستگی (ناپیوستگی، جدایی) - الگوریتم باید فرآیند حل یک مسئله را به عنوان اجرای متوالی مراحل ساده (یا قبلاً تعریف شده) نشان دهد. هر عمل ارائه شده توسط الگوریتم تنها پس از اتمام اجرای قبلی اجرا می شود.

قطعیت - هر قانون الگوریتم باید واضح، بدون ابهام باشد و جایی برای خودسری باقی نگذاشته باشد. با توجه به این ویژگی، اجرای الگوریتم ماهیت مکانیکی دارد و نیازی به دستورالعمل یا اطلاعات اضافی در مورد مشکل در حال حل ندارد.

کارایی (تناهی) - الگوریتم باید به حل مسئله در تعداد محدودی از مراحل منجر شود.

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

قوانین انجام عملیات حسابی یا ساختارهای هندسی الگوریتم هستند. در عین حال، این سوال بی پاسخ می ماند: مفهوم الگوریتم چگونه با مفاهیمی مانند "روش"، "روش"، "قاعده" متفاوت است. حتی می توانید با بیانیه ای برخورد کنید که کلمات "الگوریتم"، "روش"، "قاعده" یک چیز را بیان می کنند (یعنی مترادف هستند)، اگرچه چنین عبارتی آشکارا با "خواص الگوریتم" در تضاد است.

خود عبارت "خواص الگوریتم" کاملاً صحیح نیست. واقعیت های عینی موجود دارای ویژگی هایی هستند. مثلاً می توانیم در مورد خواص یک ماده صحبت کنیم. الگوریتم یک ساختار مصنوعی است که ما برای رسیدن به اهداف خود می سازیم. برای اینکه یک الگوریتم به هدف خود برسد، باید طبق قوانین خاصی ساخته شود. بنابراین، ما باید نه در مورد ویژگی های الگوریتم، بلکه در مورد قوانین ساخت الگوریتم یا در مورد الزامات الگوریتم صحبت کنیم.

قوانین ساخت الگوریتم

اولین قانون این است که هنگام ساخت یک الگوریتم، قبل از هر چیز، لازم است مجموعه ای از اشیاء را مشخص کنید که الگوریتم با آنها کار می کند. نمایش رسمی (کد شده) این اشیاء داده نامیده می شود. الگوریتم با مجموعه خاصی از داده ها شروع به کار می کند که به آنها ورودی می گویند و در نتیجه کار خود داده هایی را تولید می کند که به آن خروجی می گویند. بنابراین، الگوریتم داده های ورودی را به داده های خروجی تبدیل می کند.

این قانون به شما امکان می دهد فورا الگوریتم ها را از "روش ها" و "روش ها" جدا کنید. تا زمانی که داده های ورودی را رسمی نکنیم، نمی توانیم الگوریتم بسازیم.

قانون دوم این است که الگوریتم برای کار کردن به حافظه نیاز دارد. حافظه داده های ورودی را که الگوریتم با آن شروع به کار می کند، داده های میانی و داده های خروجی که نتیجه الگوریتم هستند را ذخیره می کند. حافظه گسسته است، یعنی متشکل از سلول های منفرد یک مکان حافظه با نام متغیر نامیده می شود. در تئوری الگوریتم‌ها، اندازه حافظه محدود نیست، یعنی اعتقاد بر این است که می‌توانیم هر مقدار حافظه لازم برای عملکرد را در اختیار الگوریتم قرار دهیم.

در مکتب «نظریه الگوریتم‌ها» این دو قاعده در نظر گرفته نمی‌شوند. در عین حال، کار عملی با الگوریتم ها (برنامه نویسی) با اجرای این قوانین آغاز می شود. در زبان های برنامه نویسی، تخصیص حافظه توسط عملگرهای اعلامی (عملگرهای اعلام متغیر) انجام می شود.

قانون سوم گسسته است. الگوریتم از مراحل جداگانه (عملیات، عملیات، دستورات) ساخته شده است. البته مراحل زیادی وجود دارد که الگوریتم را تشکیل می دهد.

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

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

بنابراین، الگوریتم یک مفهوم تعریف نشده در نظریه الگوریتم ها است. الگوریتم هر مجموعه خاصی از داده های ورودی را با مجموعه خاصی از داده های خروجی مرتبط می کند، به عنوان مثال، یک تابع را محاسبه (اجرا می کند). هنگام در نظر گرفتن مسائل خاص در نظریه الگوریتم ها، ما همیشه مدل خاصی از الگوریتم را در نظر داریم.

معنی کلمه الگوریتمبسیار شبیه به معنی کلمات دستور آشپزی,دستورالعمل ها. با این حال، هر الگوریتم، بر خلاف یک دستور یا روش، لزوما دارای ویژگی های زیر است.

1. اجرای الگوریتم به دنباله ای از اقدامات تکمیل شده - مراحل تقسیم می شود. فقط پس از انجام یک عمل (فرمان) می توانید اقدام بعدی را شروع کنید. این ویژگی الگوریتم نامیده می شود گسستگی. به اجراکننده دستور داده می‌شود که هر عمل جداگانه را با یک دستورالعمل خاص در رکورد الگوریتم (فرمان) انجام دهد.

2. قابل درک بودن- الگوریتم نباید حاوی دستورالعمل هایی باشد که معنی آن توسط اجراکننده به طور مبهم درک شود، یعنی. ضبط الگوریتم باید آنقدر واضح و کامل باشد که مجری نیازی به تصمیم گیری مستقل نداشته باشد. الگوریتم همیشه طوری طراحی شده است که توسط یک مجری «غیر متفکر» اجرا شود. الگوریتم از دستورات موجود در SKI تشکیل شده است.

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

3. جبرگرایی (یقین و یقین). هر دستور الگوریتم یک عمل غیر ابهام کننده را تعیین می کند و باید به طور واضح مشخص شود که کدام دستور بعدی اجرا می شود. به این معنا که اگر یک الگوریتم به طور مکرر بر روی همان مجموعه داده های منبع اعمال شود، خروجی که دریافت می کند هر بار همان نتیجه است.

4. بهره وری- اجرای الگوریتم باید در تعداد محدودی از مراحل تکمیل شود و نتیجه حل مسئله به دست آید. یکی از نتایج احتمالی ممکن است تثبیت این واقعیت باشد که مشکل راه حلی ندارد.

خاصیت اثربخشی دارای خاصیت است اندام ها- تکمیل الگوریتم در تعداد محدودی از مراحل.

5. شخصیت توده ای- الگوریتم برای حل هر مسئله ای از یک کلاس معین از مسائل مناسب است، به عنوان مثال. الگوریتم بر روی مجموعه خاصی از داده های اولیه به درستی کار می کند که به آن حوزه کاربردپذیری الگوریتم می گویند.

ویژگی انبوه کاراکتر کیفیت الگوریتم را تعیین می کند نه اینکه یکی از ویژگی های اجباری باشد (مانند گسستگی، قابل درک بودن و غیره). الگوریتم‌هایی وجود دارند که دامنه کاربرد آنها به یک مجموعه واحد از داده‌های ورودی یا حتی عدم وجود آن‌ها (مثلاً بدست آوردن تعداد ثابتی از ارقام صحیح از عدد p) محدود می‌شود. درست تر است که بگوییم الگوریتم باید برای هر داده ای از دامنه تعریف آن و کلمه قابل استفاده باشد. شخصیت توده ایهمیشه برای توصیف چنین خاصیتی مناسب نیست.

مفهوم الگوریتم

با جمع بندی موارد فوق، موارد زیر را فرموله می کنیم مفهومالگوریتم

الگوریتم - یک دستورالعمل واضح و دقیق برای اجرا کننده برای انجام دنباله نهایی اقدامات منتهی به داده های اولیه به نتیجه دلخواه.

تعریف فوق یک تعریف به معنای ریاضی کلمه نیست، یعنی. این یک تعریف رسمی نیست (برای تعریف رسمی الگوریتم به مقاله مراجعه کنید تئوری الگوریتم ها”).

توجه داشته باشید که برای هر کدام بازیگرمجموعه اقدامات مجاز (SAC) همیشه محدود است - نمی تواند مجری باشد که هر عملی برای او مجاز باشد. استدلال نقل شده ای. کانت بیانیه فرموله شده را اینگونه اثبات می کند: «اگر چنین مجری وجود داشت، یکی از اعمال مجاز او ایجاد سنگی بود که نمی توانست آن را بلند کند. اما این با جواز عمل «سنگ بلند کن» منافات دارد.

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

از سوی دیگر، مشکلاتی وجود دارد که به طور کلی ایجاد یک روش راه حل برای آنها غیرممکن است. علاوه بر این، این واقعیت را می توان به شدت ثابت کرد. شما می توانید در این مورد در مقاله بخوانید " مسائل غیرقابل حل الگوریتمی” 2.