خانه ¦ رزومه ¦ مقالات و کتب ¦ فایل های آموزشی ¦ وبلاگ ریاضی ¦ وبلاگ معلمی ¦ وبلاگ ادبی

۱۳ اسفند ۱۳۸٤ -- الگوريتمها در نرم افزارها...

عجالتاً رياضيات زيباست۲ و ميلاد نوشته‌های من را دريابيد تا ببينيم خداوند چه می‌خواهد؟

------------------------------------------------------------

آنچه در محیط‌های آکادمیک مرسوم است استفاده از دستياری به نام «نرم‌افزار» می‌باشد که شما را کمک می کنند تا:

1- دستگاه های معادلاتی نسبتا بزرگ و وقت گیر را حل کنید

2- با رسم نمودار یک تابع، درک بهتری از رفتار آن تابع روی دامنه اش بدست آورید

3- با الگوریتمی طولانی و یکنواخت، ریشه یک تابع را تقریب بزنید

4- انتگرالی معین یا نامعین را حل کنید و ...

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

...

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

 

اگر یک انتگرال معین، به میپل بدهید با روش های مختلفی که وجود دارد ، با تقریبی بسیار عالی، جواب را محاسبه می کند و همچنین اگر یک انتگرال نامعین به آن بدهید، جواب را بصورت تابعی از متغیر مورد نظر برمیگرداند!! (آیا این فرمولها بصورت تابعی –همانند ماشین حساب-  در یک Pack ، درون میپل گنجانده شده است؟)

 

اما چیزی که به مرور در نسخه های بعدی میپل وارد شد – و دلیل من برای این یادداشت بود- این بود که میپل 8 یا 9، علاوه بر محاسبه جواب انتگرال، راه حل و روش محاسبه خود را نیز می نویسد!

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

سوال که برای من ایجاد شده است اینست که :

آیا میپل در نسخه های قدیمی خود الگوریتمهایی نظیر سیمپسون و ... را برای محاسبه جواب بکار می برد و سپس جواب نهایی را اعلام می کرد؟

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

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

(یعنی وقتی شما می گویید عدد A مساوی است با فلان انتگرال معین، منظور شما یک عدد حقیقی A است که بصورت آن انتگرال بیان شده است و مشابها وقتی می‌گویید تابع فلان مساوی است با فلان انتگرال نامعین نیز به همین صورت!

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

 

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

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

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

...

تنها اشکال و در واقع اصلی ترین اشکالی که این وسط به چشم می خورد و نتوانستم برای آن پاسخی بیایم آنست که:

طبق گفته کورت گودل در مقاله ON FORMALLY UNDECIDABLE PROPOSITIONS OF PRINCIPIA MATHEMATICA AND RELATED SYSTEMS در یک دستگاه اصل موضوعی، گزاره هایی وجود دارند که با آن اصول موضوعه، نه می توان آنها را نادرست خوانده و رد کرد و نه می توان آنها را پذیرفت و درستی آنها را ثابت کرد.

در واقع طبق تئوری تصمیم ناپذیری گودل، در یک دستگاه اصول موضوعه ای، گزاره هایی غیر قابل تصمیم گیری (Undecidable) وجود دارند.

یعنی اگر ما فرض کنیم که می توانیم تمام گزاره ها را با کمک نرم افزارها اثبات کنیم آنگاه با این تئوری ثابت شده به تناقض می رسیم!

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

...

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

 

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

David Hilbert                                   Kurt Godel

ديويد هيلبرت                                                          کورت گودل

پيام هاي ديگران ()                                                  نوشته میلاد افشین منش | Milad Afshin Manesh



کلیه حقوق این وبلاگ محفوظ و متعلق به میلاد افشین منش است