شرط و تصمیمگیری الگوریتمی
شرط چیست و چگونه کار میکند؟
در زندگی روزمره، مدام در حال تصمیمگیری هستیم. مثلاً اگر هوا بارانی باشد، چتر برمیداریم و اگر نباشد، چتر نمیبریم. در الگوریتمها نیز همین اتفاق میافتد. به این «اگر»ها، شرط میگوییم. شرط، یک پرسش است که پاسخ آن فقط «درست» یا «نادرست» است. بر اساس همین پاسخ، الگوریتم تصمیم میگیرد که کدام دستور بعدی را اجرا کند.
برای درک بهتر، به یک بازی فکری توجه کنید: فرض کنید میخواهید به دوست خود پیام دهید که امروز بعد از مدرسه به پارک میروید یا نه. الگوریتم این تصمیم را میتوانید به این صورت بنویسید: «اگر ساعت به سه رسیده باشد و تکالیف من انجام شده باشد، به پارک میروم؛ در غیر این صورت به خانه میروم.» در اینجا دو شرط داریم که باید هر دو درست باشند تا نتیجه «رفتن به پارک» حاصل شود.
| نوع شرط | توضیح | مثال برای دانشآموز |
|---|---|---|
| ساده | فقط یک بررسی انجام میشود | اگر نمرهی ریاضی بالاتر از ۱۲ باشد، قبولی |
| ترکیبی با «و» | همهی شرطها باید درست باشند | اگر هوا آفتابی باشد و دمای هوا بالای ۲۰ درجه باشد، به استخر میرویم |
| ترکیبی با «یا» | حداقل یکی از شرطها درست باشد | اگر کتابخانه باز باشد یا فروشگاه کتاب تخفیف داشته باشد، کتاب میخرم |
کاربرد شرط در زندگی روزمرهٔ دانشآموزی
شاید با خود بگویید این شرطها فقط برای کامپیوترها هستند، اما نه! هر روز از آنها استفاده میکنید. فرض کنید صبح که از خواب بیدار میشوید، الگوریتمی در ذهن خود دارید: «اگر زنگ مدرسه دقایقی دیگر به صدا درآید، سریع لباس میپوشم و اگر نه، میتوانم کمی بیشتر در رختخواب بمانم.» یا هنگام انتخاب رشتهی تحصیلی: «اگر به ریاضی علاقه دارم و نمرات خوبی دارم، رشتهی ریاضی را انتخاب میکنم و در غیر اینصورت به رشتهی دیگر فکر میکنم.»
حتی در بازیهای رایانهای نیز شرطها نقش اساسی دارند. وقتی در یک بازی، جان کاراکتر شما به صفر میرسد، بازی بررسی میکند که «اگر جان بازیکن صفر باشد، بازی تمام شود؛ در غیر این صورت ادامه پیدا کند.» این یعنی الگوریتم بازی هر لحظه دارد شرطها را چک میکند تا تصمیم درست را بگیرد.
چالشهای مفهومی در شرطها
پرسش ۱: اگر چند شرط پشت سر هم داشته باشیم، ترتیب آنها مهم است؟
پاسخ: بله، در بسیاری از موارد ترتیب شرطها بسیار مهم است. مثلاً در یک الگوریتم ورود به سایت، ابتدا باید بررسی شود که نام کاربری درست است، سپس رمز عبور. اگر ترتیب را عوض کنید، ممکن است فردی با رمز اشتباه هم وارد شود!
پرسش ۲: آیا همیشه باید شرط را بنویسیم یا گاهی میتوان بدون شرط تصمیم گرفت؟
پاسخ: در الگوریتمهایی که کارهای تکراری و ساده انجام میدهند، شاید نیازی به شرط نباشد. اما بیشتر کارهای مفید و هوشمندانه نیاز به شرط دارند. مثلاً ماشینحساب بدون شرط فقط جمع و تفریق ساده انجام میدهد، اما یک الگوریتم تشخیص چهره پر از شرطهای گوناگون است.
پرسش ۳: اگر شرطی مبهم و نامشخص بنویسیم، چه اتفاقی میافتد؟
پاسخ: الگوریتم ممکن است اشتباه کند یا اصلاً نتواند تصمیم بگیرد. مانند این است که از دوست خود بپرسید «آیا امروز کار داری؟» بدون اینکه مشخص کنید کار یعنی چه. او نمیداند منظور شما تکلیف مدرسه است یا کارهای خانه. بنابراین همیشه شرط را شفاف بنویسید.
مرور سریع مطالب
شرطها قلب تپندهٔ الگوریتمها هستند. با کمک آنها میتوانیم تصمیمگیری را به رایانهها بسپاریم. شرطها یا ساده هستند یا ترکیبی و پاسخ آنها فقط درست یا نادرست است. برای نوشتن یک شرط خوب، باید آن را دقیق و بدون ابهام بیان کنیم. به یاد داشته باشید که در زندگی روزمره نیز مدام در حال استفاده از شرطها هستید؛ از انتخاب لباس تا تصمیمگیری برای درس خواندن. پس با شناخت بهتر شرطها، هم الگوریتمهای بهتری مینویسید و هم تصمیمگیریهای هوشمندانهتری در زندگی خواهید داشت.