مسئله جمع زیرمجموعه‌ها

در علوم رایانه مسئلهٔ جمع زیرمجموعه‌ها  از اهمیت مهمی در تئوری پیچیدگی و رمزنگاری برخوردار است، مسئله این است که اگر مجموعه‌ای از اعداد صحیح داشته باشیم ایا زیرمجموعه ناتهی وجود دارد که جمع اعضایش برابر ۰ شود؟
برای مثال در مجموعه {۱٬۳،-۲،-۵٬۹٬۴} زیرمجموعه‌ای مانند {-۵،-۲٬۳٬۴} وجود دارد که جمع اعضایش برابر ۰ است. مسئله جمع زیرمجموعه‌ها NP است و احتمالا یکی از اسانترین انان است.
صورت دیگر این مسئله این است که ایا زیرمجموعه ناتهی از مجموعه‌ای از اعداد صحیح وجود دارد که جمع اعضایش برابر عدد صحیح s شود؟
مسئله دیگری که به نام subset sum problem معروف است این مسئله‌است که درمجموعه‌ای از اعداد طبیعی، اگر مجموع اعضای زیر مجموعه‌ها را در نظر گیریم، عدد که بیشترین تکرار را دارد، چند بار تکرار می‌شود؟
پورکتر در سال ۱۹۸۲ این مسئله را برای مجموعهٔ {۱٬۲٬۳…} حل کرد. برای n=1٬۲،… جواب برابر است با ۱، ۱، ۲، ۲، ۳، ۵، ۸، ۱۴، ۲۳،… و تعداد اعداد متفاوت ایجاد شده برای n=1٬۲،… برابر است با ۲، ۴، ۷، ۱۱، ۱۶، ۲۲، ۲۹، ۳۷، ۴۶، ۵۶،.... برای مثال برای n=3، زیر مجموعه‌های مجموعه {۱٬۲٬۳}می بینیم:

پس عددی که بیشتر از همه ظاهر می‌شود عدد ۳ است که ۲ بار تکرار می‌شود و ۷ عدد متفاوت ایجاد می‌شود.
این مسئله را می‌توان با استفاده از توابع مولد حل نمود. اگر  تعداد روش‌های انتخاب m عدد از میان Mعدد  باشد بصورتی که جمعشان برابر s باشد و اگر تابع مولد زیر را داشته باشیم:

با نوشتن بر حسب توان‌های y داریم:

برای مثال فرض کنید می‌خواهیم m شی را از {۱٬۲٬۳٬۴٬۵} انتخاب کنیم؛ تابع مولد به صورت زیر است:

و برای مثال انتخاب m=3 دارای تابع مولد زیر است:

پس تعداد روش‌های انتخاب ۳ عدد از میان ۵ عدد که جمعشان عددی بین ۱۲٬۱۱،…،۶ باشد ضرایب  است که همان  می‌باشد که برابر ۱٬۱٬۲٬۲٬۲٬۱٬۱ است.

۶	(۱، ۲، ۳)

۷	(۱، ۲، ۴)

۸	(۱، ۲، ۵)، (۱، ۳، ۴)

۹	(۱، ۳، ۵)، (۲، ۳، ۴)

۱۰	(۱، ۴، ۵)، (۲، ۳، ۵)

۱۱	(۲، ۴، ۵)

۱۲	(۳، ۴، ۵)

 منابع 
http://mathworld.wolfram.com/SubsetSumProblem.html

http://www.math.sunysb.edu/~scott/blair/Subset_sum_problems_are.html

https://web.archive.org/web/20080307085025/http://www-fs.informatik.uni-tuebingen.de/~reinhard/krypto/English/4.5.1.e.html

 لینک‌ها 
www.cs.dartmouth.edu/~ac/Teach/CS۱۰۵-Winter۰۵/Notes/nanda-scribe-۳.pdf

www.cs.umass.edu/~barring/cs۶۱۱/lecture/۱۸.pdf

رده:برنامه‌نویسی پویا
رده:مسئله‌های ریاضی