به طور شهودی ، دسته های مختلف مسائل برنامه نویسی ریاضی در برنامه نویسی ریاضی باید شامل تکنیک های حل مختلف باشند ، بنابراین ممکن است پیچیدگی های محاسباتی متفاوتی داشته باشند. در حقیقت ، اکثر مسائل بهینه سازی ریاضی عموماً غیرقابل حل هستند-الگوریتم هایی برای حل مسائل بهینه سازی قبلی مانند روش نیوتن ، شیب شدید ، شاخه و محدوده و غیره ، اغلب به زمان اجرای نمایی یا مقدار بیش از حد حافظه نیاز دارند. راه حل های بهینه جهانی را بیابید. به عنوان یک جایگزین ، مردم به تکنیک های ابتکاری مانند صعود از تپه ، بازپخت شبیه سازی شده ، الگوریتم های ژنتیک و جستجوی محرمانه برای یک راه حل مناسب و منطقی مناسب روی می آورند.
با این وجود ، برخی از مسائل بهینه سازی ریاضی ، مانند برنامه نویسی خطی و بهینه سازی محدب ، می توانند به طور مlyثر و قابل اعتماد حل شوند. بنابراین ، این امکان وجود دارد که بررسی کنیم که آیا مشکل بهینه سازی اصلی را می توان به عنوان یکی از این مشکلات مدل یا تقریب زد. پس از اتمام ریاضی در برنامه نویسی مدل سازی ، بقیه باید آسان باشند -iranian cyber ابزارهای تجاری یا ابزارهای تجاری متعددی برای حل این مشکلات استاندارد موجود است.
در ادامه ، ما به طور مختصر تعاریف مشکل و تکنیک های حل برنامه نویسی خطی و مسائل بهینه سازی محدب را شرح خواهیم داد. برای جزئیات بیشتر نظری ، لطفاً به سایر کتابهای درسی یا یادداشت های سخنرانی در این زمینه مراجعه کنید.
4.5.2 مساله برنامه نویسی خطی (LP)
بسیاری از مشکلات بهینه سازی را می توان با اشکال ریاضی در برنامه نویسی خطی مدل سازی یا تقریب زد. به طور مستقیم ، حل مسائل LP باید ساده تر از حل مسائل بهینه سازی ریاضی عمومی باشد ، زیرا آنها فقط با محدودیت های خطی و توابع عینی سروکار دارند. با این حال ، چندین دهه طول کشید تا الگوریتم زمان چند جمله ای برای مشکلات LP ایجاد شود و چندین مشکل نظری مرتبط هنوز باز است [Smale 2000].
الگوریتم سیمپلکس ، که توسط George Dantzig در سال 1947 توسعه یافت ، اولین روش عملی است که برای حل مشکل LP استفاده می شود. با در نظر گرفتن مجموعه ای از محدودیت های خطی n متغیر ، الگوریتم سیمپلکس ابتدا یک راه حل اساسی ممکن را پیدا می کند که تمام محدودیت ها را برآورده می کند. ریاضی در برنامه نویسی این راه حل اساسی از نظر مفهومی یک راس (یعنی یک نقطه شدید) چند ضلعی محدب است که با محدودیت های خطی در ابرفضا Rn گسترش یافته است. الگوریتم سپس در امتداد لبه های چند وجهی در جهت یافتن مقدار بهتر تابع هدف حرکت می کند. تضمین می شود که در نهایت این روش در راه حل بهینه خاتمه می یابد.
اگرچه الگوریتم سیمپلکس می تواند در اکثر کاربردهای کاربردی به طور مثر ریاضی در برنامه نویسی مورد استفاده قرار گیرد ، اما بدترین پیچیدگی آن همچنان نمایی است. اینکه آیا الگوریتم زمان چند جمله ای برای مشکلات LP وجود دارد ، تا اواخر دهه 1970 ، زمانی که لئونید خاچیان روش بیضی شکل را روی این مشکل اعمال کرد و ثابت کرد که می توان آن را در زمان O (n4w) حل کرد ، ناشناخته بود. در اینجا n و w به ترتیب تعداد و عرض متغیرها هستند.
به طور شهودی ، دسته های مختلف مسائل برنامه نویسی ریاضی در برنامه نویسی ریاضی باید شامل تکنیک های حل مختلف باشند ، بنابراین ممکن است پیچیدگی های محاسباتی متفاوتی داشته باشند. در حقیقت ، اکثر مسائل بهینه سازی ریاضی عموماً غیرقابل حل هستند-الگوریتم هایی برای حل مسائل بهینه سازی قبلی مانند روش نیوتن ، شیب شدید ، شاخه و محدوده و غیره ، اغلب به زمان اجرای نمایی یا مقدار بیش از حد حافظه نیاز دارند. راه حل های بهینه جهانی را بیابید. به عنوان یک جایگزین ، مردم به تکنیک های ابتکاری مانند صعود از تپه ، بازپخت شبیه سازی شده ، الگوریتم های ژنتیک و جستجوی محرمانه برای یک راه حل مناسب و منطقی مناسب روی می آورند.
با این وجود ، برخی از مسائل بهینه سازی ریاضی ، مانند برنامه نویسی خطی و بهینه سازی محدب ، می توانند به طور مlyثر و قابل اعتماد حل شوند. بنابراین ، این امکان وجود دارد که بررسی کنیم که آیا مشکل بهینه سازی اصلی را می توان به عنوان یکی از این مشکلات مدل یا تقریب زد. پس از اتمام ریاضی در برنامه نویسی مدل سازی ، بقیه باید آسان باشند -iranian cyber ابزارهای تجاری یا ابزارهای تجاری متعددی برای حل این مشکلات استاندارد موجود است.
در ادامه ، ما به طور مختصر تعاریف مشکل و تکنیک های حل برنامه نویسی خطی و مسائل بهینه سازی محدب را شرح خواهیم داد. برای جزئیات بیشتر نظری ، لطفاً به سایر کتابهای درسی یا یادداشت های سخنرانی در این زمینه مراجعه کنید.
4.5.2 مساله برنامه نویسی خطی (LP)
بسیاری از مشکلات بهینه سازی را می توان با اشکال ریاضی در برنامه نویسی خطی مدل سازی یا تقریب زد. به طور مستقیم ، حل مسائل LP باید ساده تر از حل مسائل بهینه سازی ریاضی عمومی باشد ، زیرا آنها فقط با محدودیت های خطی و توابع عینی سروکار دارند. با این حال ، چندین دهه طول کشید تا الگوریتم زمان چند جمله ای برای مشکلات LP ایجاد شود و چندین مشکل نظری مرتبط هنوز باز است [Smale 2000].
الگوریتم سیمپلکس ، که توسط George Dantzig در سال 1947 توسعه یافت ، اولین روش عملی است که برای حل مشکل LP استفاده می شود. با در نظر گرفتن مجموعه ای از محدودیت های خطی n متغیر ، الگوریتم سیمپلکس ابتدا یک راه حل اساسی ممکن را پیدا می کند که تمام محدودیت ها را برآورده می کند. ریاضی در برنامه نویسی این راه حل اساسی از نظر مفهومی یک راس (یعنی یک نقطه شدید) چند ضلعی محدب است که با محدودیت های خطی در ابرفضا Rn گسترش یافته است. الگوریتم سپس در امتداد لبه های چند وجهی در جهت یافتن مقدار بهتر تابع هدف حرکت می کند. تضمین می شود که در نهایت این روش در راه حل بهینه خاتمه می یابد.
اگرچه الگوریتم سیمپلکس می تواند در اکثر کاربردهای کاربردی به طور مثر ریاضی در برنامه نویسی مورد استفاده قرار گیرد ، اما بدترین پیچیدگی آن همچنان نمایی است. اینکه آیا الگوریتم زمان چند جمله ای برای مشکلات LP وجود دارد ، تا اواخر دهه 1970 ، زمانی که لئونید خاچیان روش بیضی شکل را روی این مشکل اعمال کرد و ثابت کرد که می توان آن را در زمان O (n4w) حل کرد ، ناشناخته بود. در اینجا n و w به ترتیب تعداد و عرض متغیرها هستند.

معرفی هوش مصنوعی به زبان ساده برای کودکان