عمل (Operation) در ریاضیات، تابعی است که با توجه به مجموعههای به کاررفته در تعریف آن، انواعی دارد. عملها در ریاضیات جایگاه بسیار مهمی دارند و در بعضی از مواقع، پلی از ریاضیات قدیمی به ریاضیات جدید بودهاند. در این نوشته از فنولوژی به بررسی اجمالی عمل میپردازیم و انواعی از آن را معرفی میکنیم.
مفهوم ابتدایی و تاریخچه
وقتی اسم «عمل ها در ریاضیات» میآید، اولین چیزهایی که به ذهن میرسد، «جمع»، «تفریق»، «ضرب» و «تقسیم» است. البته که اینها اعمال ریاضی، و معروف به چهار عمل اصلی یا اعمال اصلی حساب هستند؛ اما مفهوم عمل، بسیار فراتر از این است.
احتمالا از وقتی که مفهوم عدد مطرح بوده، مفهوم عمل (هرچند بهطور محدود) نیز مطرح بوده است. برای مثال اگر برای شمارش دامها از انگشتان دست که متناظر با اعداد یک تا ۱۰ هستند، استفاده میشده، جمع تعدادی دام هم با استفاده از کنارهمگذاشتن این انگشت ها قابل انجام بودهاست. نهایت ماجرا این است که اگر تعداد دام ها زیاد باشد یا جمع دو دسته زیاد باشد، از دستهای افراد بیشتری استفاده میشود.
از نظر تاریخی هم خیلی زود به اهمیت مفهوم «عمل» پیبرده شده است. علامتهای عملهای ریاضی در نوشتههای بیشتر تمدنها، مثل چین، مصر، یونان و ایران باستان یافت میشود. اگرچه علامتها در نوشتههای مختلف، گوناگون بودهاند، ولی منظور از همهی آن ها یک چیز بودهاست. البته در بسیاری از تمدنها نیز به جای استفاده از علامت، از یک کلمه یا عبارت برای نشان دادن عملها استفاده میشد؛ اما چیزی که بین همهی تمدنهای دنبال کنندهی علوم یکسان بوده، توجه به اهمیت مفهوم عمل است. با گذشت زمان مفهوم عمل بهنحوهایی تعمیم پیدا کرد؛ اما سوال این است که چرا و چگونه این تعمیم انجام شده و چه نتایجی بههمراه داشته است؟ قبل از ارائهی تعریف دقیقی از عمل، بهتر است به این سوال مهم جواب دهیم.
دلایل تعمیم مفهوم عمل و نتایج این تعمیم
اگر از تمدنهای باستان جلوتر بیاییم و به جایی برسیم که چهار عمل اصلی به طور خوبی شناخته شدهاند، آن وقت میتوان مهم ترین دلایل گسترش مفهوم عمل را این گونه بیان کرد:
یک) ابداع عمل هایی برای راحتی در نوشتار و انجام محاسبات
به عنوان مثال میتوان به مفهوم «توان» اشاره کرد که قبلها نیز با عمل «ضرب» و حتی «جمع» قابل بیان بود ولی اضافه شدن آن، فایدههای زیادی داشت. یکی دیگر از این ابداعات برای راحتی نوشتار، «سیگما» یا بهطور کلی هر عملی است که به جای «دو ورودی» بتواند از نظر «تعداد ورودی» آزادتر باشد.
دو) ابداع ساختارهای جدید
شاید بتوان این عامل را مهمتر از عامل اول و هر عامل دیگری دانست و آن چیزی جز «ابداع ساختارهای جدید» نیست. برای مثال فرض کنید مفهومی به اسم «ماتریس» به وجود میآید که با مفهوم عدد تفاوتهایی دارد؛ واضح است که از اولین سوالهایی که پیش میآید، این است که آیا میتوان ماتریسها را با هم جمع کرد و مفهومی از اجرای این عمل داشت؟ شاید انجام یک عمل بین ساختارهای جدید ساده باشد و شاید هم سخت؛ ولی به هرحال ابداع ساختاری جدید، تعدادی عمل جدید نیز با خود به همراه دارد.
سه) اهداف کاربردی
شاید بتوان این عامل را در دستههای بالا نیز جا داد ولی میتوان به اهداف کاربردی که فراتر از راحتی در امور بودند نیز اشاره کرد. کاربردهای رمزنگاری نمونهی خوبی از این مورد هستند. برای مثال فرض کنید بخواهیم اسمی را در زبان انگلیسی بنویسیم، بهطوری که هرکس به راحتی نتواند آن را بخواند. برای این کار یک روش این است که حرف های A تا Z را به ترتیب، متناظر با اعداد صفر تا ۲۵ در نظر بگیریم (خود این کار، نوعی عمل است که به آن خواهیم پرداخت). حال رمزکردنِ این اسم را بدین ترتیب انجام میدهیم که هر حرف در متن اصلی، که یک عدد به آن نظیر کردهایم، در متن رمزیشده به حرفی برود که جمع اعداد متناظر با این دو حرف، در پیمانهی ۲۶، برابر با صفر شود. این روش، یک روش نهچندان قوی ولی معتبر برای انجام این کار است (معتبر است چون به ازای هر عدد بین صفر و ۲۵ دقیقا یک عدد وجود دارد که چنین خاصیتی دارد؛ درنتیجه امکان ندارد یک حرف بتواند به دوحرف مختلف در متن رمزی تبدیل شده باشد).
در اینجا یک عمل جدید که «جمع در پیمانهی ۲۶» است، تعریف میشود. این عمل بدین صورت است که دو عدد به صورت معمولی جمع میشوند و درنهایت باقیماندهی تقسیم آنها بر ۲۶ محاسبه شده و جواب این عمل خواهد بود. برای مثال، حاصل جمع ۱۱ و ۲۲ در پیمانهی ۲۶ برابر با ۷ میشود. دلیل الزام استفاده از این عمل به جای جمع معمولی، این است که در جمع معمولی ممکن است حاصل بیشتر از ۲۵ شود و آنوقت حرفی وجود ندارد که متناظر با عددی بیشتر از ۲۵ باشد. ولی چون باقیماندهی تقسیم اعداد بر ۲۶، بین صفر و ۲۵ است، پس همواره حرفی وجود دارد. برای مثال در این روش رمزنگاری داریم:
\[ALI\rightarrow APS\]
چون جمع صفر و صفر، ۱۱ و ۱۵، و ۸ و ۱۸در پیمانهی ۲۶ برابر با صفر است. مسلماً میتوان دلایل دیگری نیز برای تعمیم مفهوم عمل آورد، ولی به همینها اکتفا میکنیم؛ اما این تعمیمها از مفهوم عمل منجر به چه اتفاقاتی شد؟
نتایج تعمیم مفهوم عمل
ابداع شدن عملهای جدید، همراه با پیشرفت بسیار یک زمینه و به وجود آمدن بحثهای جدید در آن زمینه است. برای مثال هدف از معرفی ساختاری مانند «گراف» در ابتدا، ارائهی یک مدلبندی خوب برای برخی مسائل روزمره بوده است ولی اضافهشدن مفهومی به نام «ضرب گرافها» یا «رنگآمیزی راسهای گرافها» که هر کدام نوعی عمل مرتبط با گرافها هستند، باعث به وجود آمدن بسیاری بحثها، و پراهمیتتر شدن گرافها شد.
گاهی این تاثیر بسیار بیشتر است و ریاضیات را به سمت جدیدی سوق میدهد. برای مثال در روند تکامل «جبرمجرد»، جرقهی اولیهی ماجرا هنگام بحث درمورد «حل عمومی معادلات چندجملهای از درجهی پنج و بالاتر» زده شد. در ابتدا فقط نوع خاصی از عمل که بین جایگشتها انجام میشد، وجود داشت؛ ولی با گذشت زمان برای هر ساختار ریاضی، عملهای گوناگون تعریف شد و مفاهیمی جبری مثل «گروه»، «حلقه»، «مدول» و بسیاری ساختارهای جبری دیگر، به نحو بهتری معرفی شدند و با توسعهی آنها، جبرمجرد و درنتیجه کل ریاضیات تحولی اساسی پیدا کرد.
تعریف عملها در ریاضیات
منظور از یک عمل $n$-تایی از $X_{1}$ , $X_{2}$ , … , $X_{n}$ به $Y$ ، تابعی به صورت زیر است:
$f : X_{1}\times X_{2}\times … \times X_{n} \rightarrow Y$
که در آن $n$ عددی صحیح و نامنفی و نشاندهندهی تعداد ورودیهای عمل (arity) است. به هر کدام از این ورودیها عملوند (operand) گفته میشود.
تعمیمهایی از تعریف عمل
تعریف بالا را میتوان بهگونههایی تعمیم داد. دو تعمیم رایج از تعریف عمل وجود دارد که به آنها میپردازیم.
عمل جزئی
میدانیم رابطهای که دو ویژگی مهم را داشته باشد، تابع مینامیم. اولین ویژگی این است که یک عضو از دامنه به بیش از یک عضو از همدامنه نرود و دومین ویژگی این است که هر عضو از دامنه حتما به عضوی از همدامنه رفته باشد؛ به عبارت دیگر با ترکیب این دو شرط میتوان گفت که تابع، رابطهای است که هر عضو از دامنه به یک و تنها یک عضو از همدامنه رفته باشد.
در ریاضیات به رابطهای که فقط شرط اول را داشتهباشد، تابع جزئی (Partial function) میگویند. حال احتمالا تعریف عمل جزئی (Partial operation) را حدس زدهاید. منظور از یک عمل جزئی $n$-تایی از $X_{1}$ , $X_{2}$ , … , $X_{n}$ به $Y$، تابعی جزئی به صورت زیر است:
$f : X_{1}\times X_{2}\times … \times X_{n} \rightarrow Y$
پس تنها تفاوت آن با عمل این است که در اینجا $f$ نه یک تابع، بلکه یک تابع جزئی است. به این مثال توجه کنید:
$f : \mathbb{Z}\times \mathbb{Z} \rightarrow \mathbb{Q} \,\,\, ; \,\,\, f(a,b)=\frac{a’}{b’}$
که $a’$ و $b’$ بهصورت $ a’=\frac{a}{d} $ و $ b’=\frac{b}{d} $ و $d$ همان ب.م.م دو عدد $a$ و $b$ است (در واقع $\frac{a’}{b’} $ سادهشدهی کسر $\frac{a}{b} $ است؛ بدین منظور که در مجموعهی اعدادگویا باشد).
در اینجا $f$ در واقع همان تقسیم دو عدد صحیح به یکدیگر است. از آنجا که تقسیم بر صفر معنایی ندارد، پس زوج مرتبهایی به فرم $(a,0)$ به هیچ عضوی از $\mathbb{Q} $ نمیروند؛ بنابراین $f$ یک عمل جزئی است.
عمل با نامتناهی ورودی
این تعمیم از تعریف عمل، جزئیات بیشتری دارد. همان طور که از نام آن پیداست، تعداد ورودیها در عمل با نامتناهی ورودی (infinitary operation)، نامتناهی است؛ بنابراین میتوان تعریف زیر را برای آن ارائه داد:
$ f : \prod_{i\in \Gamma }X_{i} \rightarrow Y $
که در اینجا $ \Gamma $ یک مجموعهی نامتناهی است. منظور از $ \prod_{i\in \Gamma }X_{i} $ ، ضرب دکارتی مجموعههایی است که اندیس آنها از مجموعهی نامتناهی $ \Gamma $ میآید؛ در نتیجه تعداد ورودیهای این تابع، نامتناهیتا خواهد بود.
اگر $ \Gamma $ یک مجموعهی نامتناهی شمارا مثل $ \mathbb{N} $ باشد، آنگاه میتوان این تعریف را به صورت زیر هم نوشت:
$ f : X_{1}\times X_{2}\times X_{3}\times … \rightarrow Y $
اما برای مجموعههای ناشمارا مثل $ \mathbb{R} $ چنین چیزی ممکن نیست و باید همان فرم اولیه را نوشت. همچنین بهتر است که مجموعهی نامتناهی $ \Gamma $ ، یک مجموعهی مرتب باشد؛ بدین معنی که برای هر دو عضو متمایز از آن بتوان گفت که کدام بزرگتر است؛ مثلا $ \mathbb{R} $ مرتب است، ولی مجموعهی اعداد مختلط، مرتب نیست؛ چون مثلا نمیتوان گفت که $ i $ بزرگتر است یا یک. مشکلی که نامرتب بودن پیش میآورد این است که ترتیبی وجود ندارد که مجموعهها را درهم ضرب دکارتی کنیم و میدانیم که ترتیب در ضرب دکارتی مهم است. فرض کنید که $ \Gamma =\mathbb{C} $ در این صورت کدام یک از مجموعههای $ X_{i} $ و $ X_{1} $ باید در این ضرب دکارتی، اول ظاهر شود؟ البته ممکن است که این موضوع، مشکلی به وجود نیاورد؛ مثلا این حالت که همهی مجموعههای $ X_{i} $ برابر باشند، مشکلی ندارد چون نتیجهی ضرب دکارتی با هر ترتیبی که این اندیسها نوشته شوند، یکی خواهد بود.
توجه شود که میتوان تعریف عمل را بهگونههای دیگری نیز تعمیم داد؛ به عنوان مثال اگر هر دو موردی که ذکر شد، با هم اعمال شوند، یک نوع تعمیم دیگر نیز از عمل خواهیمداشت. تعمیم پیچیده و جالب دیگری نیز از عمل وجود دارد که به ابرعمل (hyperoperation) معروف است.
انواعی از عملها در ریاضیات
بهترین و رایج ترین دستهبندی که میتوان برای عملها در ریاضیات ارائه داد، دستهبندی براساس تعداد ورودیهای عمل است. طبق آنچه تعریف کردیم، یک عمل میتواند صفر، یک، دو، … یا $ n $ ورودی داشته باشد. معمولاً اعمال با یک یا دو ورودی در ریاضیات اهمیت و کاربرد بیشتری دارند. به عنوان مثالی از عمل با دو ورودی میتوان به «جمع یا ضرب معمولیِ دو عدد طبیعی» اشاره کرد. همچنین «قرینه کردن در اعداد صحیح» نمونهای از عمل با تنها یک ورودی است. در مثالی که در مورد رمزنگاری زدیم نیز میتوان تبدیل هر حرف به یک عدد را یک عمل با یک ورودی دانست که نوعی کدگذاری (encoding) است. آنچه شاید کمی عجیب به نظر برسد، عمل با صفر ورودی است. برخی مواقع «ثابتها» را بهعنوان یک عمل با صفر ورودی نگاه میکنند. این کار در زمینههایی مثل برنامهنویسی کاربردهایی دارد.
میتوان نمونههای دیگری از دستهبندی را برای اعمال ارائه داد، ولی معمولاً دستههای زیاد و متفاوتی وجود خواهد داشت؛ مثلاً میتوان عملها را بر اساس اینکه مجموعههای ورودی و خروجی آنها چه ساختاری دارند، دستهبندی کرد. این مجموعهها میتوانند در جبر، ترکیبیات، منطق و … متفاوت باشند. دربارهی دستهبندی اعمال و مثالها برای هر نوع عملی میتوان توضیحات بسیار داد و مثالهای بسیار زد که میتوانید در نوشتهی انواع و مثالهایی از اعمال، در این مورد بیشتر بخوانید.
تفاوت عمل و عملگر
حتما نام عملگر (operator) را قبلا شنیدهاید. حال ممکن است برای شما هم این سوال پیش بیاید که عمل و عملگر چه تفاوتی با هم دارند. تفاوت این دو مفهوم میتواند در متنهای ریاضی، فیزیک، علوم کامپیوتر و … متفاوت از هم باشد. یکی از تفاوتها این است که وقتی اسم عمل را میآوریم، اینکه ورودی و خروجی از چه نوع باشند برای ما مهم است؛ در صورتی که درمورد عملگر اینگونه نیست. مثلاً گفتن «عمل جمع روی اعداد صحیح» رایجتر از «عملگر جمع روی اعداد صحیح» است و معمولا کلمهی عملگر و جمع در ترکیباتی مثل «عملگر جمع» کنار یکدیگر قرار میگیرند (بدون اینکه توجهی به نوع ورودی و خروجی شود).
تفاوت مهمتر بین این دو را میتوان در تعداد ورودیها دید. تعداد ورودیهای عمل آزاد است اما معمولا عملگرها فقط یک ورودی دارند. به عملگرهای معروفی که میشناسید، دقت کنید. عملگرهایی مثل مشتق و انتگرال، هردو دارای تنها یک ورودی هستند. تفاوت دیگر بین این دو مفهوم در ساختار دامنهی آنهاست. برای عمل، محدودیت خاصی در نوع مجموعههای بهکاررفته در دامنه وجود ندارد ولی برای عملگرها، مجموعهی بهکاررفته در دامنه معمولا مجموعهای تشکیلشده از توابع یا دیگر ساختارهاست، نه اعداد. بازهم به مثالهای مشتق و انتگرال توجه کنید؛ ورودیِ هردویِ این مثالها، توابع هستند. برای دانستن جزئیات و مثالهای بیشتر، بهتر است نوشتهی مربوط به عملگرها را هم بخوانید.