مسئله جمع زیرمجموعهها
در علوم رایانه مسئلهٔ جمع زیرمجموعهها (به انگلیسی: Subset_sum_problem) از اهمیت مهمی در تئوری پیچیدگی و رمزنگاری برخوردار است، مسئله این است که اگر مجموعهای از اعداد صحیح داشته باشیم ایا زیرمجموعه ناتهی وجود دارد که جمع اعضایش برابر ۰ شود؟ برای مثال در مجموعه {۱٬۳،-۲،-۵٬۹٬۴} زیرمجموعهای مانند {-۵،-۲٬۳٬۴} وجود دارد که جمع اعضایش برابر ۰ است. مسئله جمع زیرمجموعهها NP است و احتمالا یکی از اسانترین انان است. صورت دیگر این مسئله این است که ایا زیرمجموعه ناتهی از مجموعهای از اعداد صحیح وجود دارد که جمع اعضایش برابر عدد صحیح s شود؟ مسئله دیگری که به نام subset sum problem معروف است این مسئلهاست که درمجموعهای از اعداد طبیعی، اگر مجموع اعضای زیر مجموعهها را در نظر گیریم، عدد که بیشترین تکرار را دارد، چند بار تکرار میشود؟ پورکتر در سال ۱۹۸۲ این مسئله را برای مجموعهٔ {۱٬۲٬۳…} حل کرد. برای n=1٬۲،… جواب برابر است با ۱، ۱، ۲، ۲، ۳، ۵، ۸، ۱۴، ۲۳،… و تعداد اعداد متفاوت ایجاد شده برای n=1٬۲،… برابر است با ۲، ۴، ۷، ۱۱، ۱۶، ۲۲، ۲۹، ۳۷، ۴۶، ۵۶،.... برای مثال برای n=3، زیر مجموعههای مجموعه {۱٬۲٬۳}می بینیم:
پس عددی که بیشتر از همه ظاهر میشود عدد ۳ است که ۲ بار تکرار میشود و ۷ عدد متفاوت ایجاد میشود.
این مسئله را میتوان با استفاده از توابع مولد حل نمود. اگر
با نوشتن بر حسب توانهای y داریم:
برای مثال فرض کنید میخواهیم m شی را از {۱٬۲٬۳٬۴٬۵} انتخاب کنیم؛ تابع مولد به صورت زیر است:
و برای مثال انتخاب m=3 دارای تابع مولد زیر است:
پس تعداد روشهای انتخاب ۳ عدد از میان ۵ عدد که جمعشان عددی بین ۱۲٬۱۱،…،۶ باشد ضرایب
۶
۷
۸
۹
۱۰
۱۱
۱۲
منابع
http://mathworld.wolfram.com/SubsetSumProblem.html
http://www.math.sunysb.edu/~scott/blair/Subset_sum_problems_are.html
لینکها
www.cs.dartmouth.edu/~ac/Teach/CS۱۰۵-Winter۰۵/Notes/nanda-scribe-۳.pdf
www.cs.umass.edu/~barring/cs۶۱۱/lecture/۱۸.pdf