ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
انسان در زندگی روزمرهی خود با مسئلههای گوناگونی سر و کار دارد و تلاشهای او برای حل مسئله به پشرفت و ترقی انجامیده است. مسئله میتواند ماهیتی ریاضی یا غیرریاضی داشته باشد. برخی از مسئلهها سادهاند و پیشپاافتاده و به راحتی میتوان آنها را حل کرد؛ اما برخی دیگر پیچیده و غامض هستند و حل آنها ممکن است زمانبر باشد.
یک مسئلهی خوشساخت دارای ویژگیهای اساسی زیر است:
الف) اطلاعات آشکار و معلوم مسئله به طور شفاف بیان شدهاند.
ب) میتوانیم مشخص کنیم چه وقت مسئله حل شده است.
ج) هنگامی که میکوشیم مسئله را حل کنیم، صورت آن تغییر نمیکند.
این ویژگی که میتوانیم معین کنیم چه وقت مسئله حل شده است بدین معنی نیست که از پیش جواب مسئله را میدانیم، بلکه منظور این است وقتی که به پاسخ درست رسیدهایم از این واقعیت آگاهیم که مسئله حل شده است و فرایند حل مسئله را متوقف میکنیم. پاسخ مسئله بسته به ماهیت آن میتواند قطعی باشد یا تقریبی. برخی از مسئلهها ممکن است دو یا چند پاسخ صحیح داشته باشند. گاهی رسیدن به یک پاسخ کافی است و به آن بسنده میکنیم، اما گاهی باید پاسخ بهینه یعنی بهترین جواب را بیابیم. در صورت امکان، ممکن است از ما خواسته شود همهی پاسخهای صحیح را پیدا کنیم. برای حل مسئله نیز ممکن است چندین روش مختلف وجود داشته باشد و اغلب باید راهحل بهینه را برگزید.
برای حل مسئله نیاز به یک ابزار است. این ابزار میتواند مغز انسان و توانایی ذهن او باشد. اگر مسئله پیچیده باشد، انسان نیاز به ابزاری کمکی دارد. ابزارهایی مانند چرتکه، ماشینحساب یا کامپیوتر انجام محاسبات را برای انسان سادهتر میکنند و به یاری آنها زودتر میتوان مسئله را حل کرد. امروزه با پیشرفتهایی که در زمینهی هوش مصنوعی و یادگیری ماشین صورت گرفته است، سامانههای هوشمند این توانایی را دارند که برخی از مسئلهها را بدون دخالت عامل انسانی یا با دخالت اندک عامل انسانی حل کنند.
طراحی و پیادهسازی الگوریتم تلاشی است نظامیافته برای حل مسئله. بنابراین برنامهنویسان باید پیوسته توانایی خود در حل مسئله را بهبود بخشند و بکوشند تا بهینهترین الگوریتمها را به کار بگیرند.