محاسبات افزایشی، یک ویژگی نرم افزاری است که هرگاه بخشی از داده ها تغییر می کند، با تنها محاسبه مجدد آن خروجی هایی که به داده های تغییر یافته بستگی دارد، اقدام به صرفه جویی در زمان می کند. هرگاه محاسبات افزایشی موفقیت آمیز باشد، می تواند به طور قابل توجهی سریعتر از محاسبه ساده انگارانه خروجی های جدید باشد. برای مثال، یک بسته نرم افزاری صفحه گسترده ممکن است از محاسبات افزایشی در ویژگی محاسبه مجدد خود استفاده کند تا فقط آن سلول هایی را که شامل فرمول های وابسته ( مستقیم یا غیرمستقیم ) به سلول های تغییر یافته هستند، به روزرسانی نماید.
هنگامی که محاسبات افزایشی توسط ابزاری پیاده سازی می شود که می تواند آن را برای انواع کدهای مختلف به طور خودکار پیاده سازی کند، آن ابزار نمونه ای از ابزار تحلیل برنامه برای بهینه سازی است.
تکنیک های محاسبات افزایشی را می توان به طور کلی به دو نوع روش تقسیم کرد:
رویکردهای ایستا تلاش می کنند تا یک برنامه افزایشی را از یک برنامه P معمولی با استفاده از، به عنوان مثال، طراحی دستی و بازآرایی یا تبدیل های خودکار برنامه استخراج کنند. این تغییرات برنامه قبل از اینکه هر ورودی یا تغییر ورودی ارائه شود، رخ می دهد.
رویکردهای پویا اطلاعات مربوط به اجرای برنامه P را روی یک ورودی خاص ( I1 ) ثبت می کنند و از این اطلاعات زمانی که ورودی تغییر می کند ( به I2 ) برای به روزرسانی خروجی ( از O1 به O2 ) استفاده می کنند. شکل رابطه بین برنامه P، تابع محاسبه تغییر ΔP، که هسته برنامه افزایشی را تشکیل می دهد، و یک جفت ورودی و خروجی، I1، O1 و I2، O2 را نشان می دهد.
برخی از روش های محاسبات افزایشی تخصصی هستند، در حالی که برخی دیگر کلی هستند. روش های تخصصی نیاز دارند که برنامه نویس الگوریتم ها و ساختارهای داده ای را که برای حفظ زیرمحاسبات بدون تغییر استفاده می شوند، به صراحت مشخص کند. از سوی دیگر، رویکردهای کلی از زبان، کامپایلر یا تکنیک های الگوریتمی برای دادن رفتار افزایشی به برنامه های غیرافزاینده استفاده می کنند.
با توجه به یک محاسبات C = f ( x 1 , x 2 , … x n ) و یک تغییر بالقوه x j := Δ x j ، می توانیم کد را قبل از تغییر ( پیش از مشتق ) و بعد از تغییر ( پس از مشتق ) وارد کنیم تا مقدار C سریعتر از اجرای مجدد f به روز شود. پیج فهرستی از قوانین برای تمایز رسمی برنامه ها در SUBSETL نوشته است.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفهنگامی که محاسبات افزایشی توسط ابزاری پیاده سازی می شود که می تواند آن را برای انواع کدهای مختلف به طور خودکار پیاده سازی کند، آن ابزار نمونه ای از ابزار تحلیل برنامه برای بهینه سازی است.
تکنیک های محاسبات افزایشی را می توان به طور کلی به دو نوع روش تقسیم کرد:
رویکردهای ایستا تلاش می کنند تا یک برنامه افزایشی را از یک برنامه P معمولی با استفاده از، به عنوان مثال، طراحی دستی و بازآرایی یا تبدیل های خودکار برنامه استخراج کنند. این تغییرات برنامه قبل از اینکه هر ورودی یا تغییر ورودی ارائه شود، رخ می دهد.
رویکردهای پویا اطلاعات مربوط به اجرای برنامه P را روی یک ورودی خاص ( I1 ) ثبت می کنند و از این اطلاعات زمانی که ورودی تغییر می کند ( به I2 ) برای به روزرسانی خروجی ( از O1 به O2 ) استفاده می کنند. شکل رابطه بین برنامه P، تابع محاسبه تغییر ΔP، که هسته برنامه افزایشی را تشکیل می دهد، و یک جفت ورودی و خروجی، I1، O1 و I2، O2 را نشان می دهد.
برخی از روش های محاسبات افزایشی تخصصی هستند، در حالی که برخی دیگر کلی هستند. روش های تخصصی نیاز دارند که برنامه نویس الگوریتم ها و ساختارهای داده ای را که برای حفظ زیرمحاسبات بدون تغییر استفاده می شوند، به صراحت مشخص کند. از سوی دیگر، رویکردهای کلی از زبان، کامپایلر یا تکنیک های الگوریتمی برای دادن رفتار افزایشی به برنامه های غیرافزاینده استفاده می کنند.
با توجه به یک محاسبات C = f ( x 1 , x 2 , … x n ) و یک تغییر بالقوه x j := Δ x j ، می توانیم کد را قبل از تغییر ( پیش از مشتق ) و بعد از تغییر ( پس از مشتق ) وارد کنیم تا مقدار C سریعتر از اجرای مجدد f به روز شود. پیج فهرستی از قوانین برای تمایز رسمی برنامه ها در SUBSETL نوشته است.
wiki: محاسبات افزایشی