Кіріспе
3 бөлініс проблемасы - компьютерлік ғылымдағы NP толық проблема. Мәселе - берілген бүтін сандар көп жиынтығын барлық тең сомаға ие үштікке бөлуге бола ма, жоқ па, оны шешу. Нақтырақ айтқанда: Кірісі: n оң бүтін элементтерден тұратын S көп жиынтығы. Шарттар: S m үштікке, S1, S2, Sm, мұндағы n = 3m бөлінуі тиіс. Бұл үштік S-ті олардың ажыратылған және S-ті қамтитын мағынада бөледі. Түпкілікті мәнді есептеу үшін S-тің барлық элементтерінің қосындысын алып, m-ге бөлінеді. Шығыс: S-тің бөлінісі бар ма, жоқ па, барлық үштік үшін әрбір үштік элементтерінің қосындысы T-ге тең. 3-ті бөлу мәселесі S-тің әрбір бүтін саны T/4 мен T/2 арасында қатаң түрде болады деген шектеумен NP толық болып қалады.
Input: a multiset S containing n positive integer elements. Conditions: S must be partitionable into m triplets, S1, S2, , Sm, where n = 3m. These triplets partition S in the sense that they are disjoint and they cover S. The target value T is computed by taking the sum of all elements in S, then divided by m.
Output: whether or not there exists a partition of S such that, for all triplets, the sum of the elements in each triplet equals T.
The 3 partition problem remains strongly NP complete under the restriction that every integer in S is strictly between T/4 and T/2.
Мысал
Жинақты төрт жиынтыққа бөлуге болады , олардың әрқайсысының сомасы T = 90 . Жинақты екі жиынтыққа бөлуге болады, олардың әрқайсысының сомасы T = 15 . (S-тегі әрбір бүтін сан T/4 мен T/2 арасында қатаң болады): , сондықтан m=2, және T=15. 3 бөлінісі бар (S-тегі әрбір бүтін сан T/4 мен T/2 арасында қатаң түрде болады): , сондықтан m=2, және T=15. Ондай шешім жоқ.
НП толықтығының жоғары деңгейі
3 бөлу мәселесі, тіпті S-тегі бүтін сандар n-дегі көпмүшемен шектелген кезде де NP толық болып қалады. Басқаша айтқанда, кіріс инстанциясындағы сандарды униарлық түрде бейнелеген кезде де мәселе NP толық болып қалады. яғни, 3 бөлінісі NP толық күшті мағынада немесе күшті NP толық. Бұл қасиет және жалпы 3 бөлінісі сандар табиғи түрде бірлікте бейнеленген көптеген азайтуларда пайдалы.
3-Бөлшектеу және Бөлшектеу
3 бөлу мәселесі, мақсат S-ті тең сомамен екі қосалқы жиынтыққа бөлу және мақсат S-ті тең сомамен k қосалқы жиынтыққа бөлу, мұндағы k - тұрақты параметр. 3 бөлінісінде мақсат - S-ті m = n/3 қосалқы жиынтықтарға бөлу, тек қосалқы жиынтықтардың белгіленген саны емес, тең сомамен. Бөліну 3 Бөлінуден "ең оңай": 3 Бөліну NP-ге қатты қиын болса, Бөліну NP-ге әлсіз қиын, ол сандар бірлік емес жүйеде кодталғанда ғана қиын, ал n-де экспоненциалдық мәнге ие болады.
Нұсқалар
Шектелмеген енгізу нұсқасында енгізулер кез келген бүтін сандар болуы мүмкін; шектелген енгізу нұсқасында енгізулер (T/4, T/2) болуы тиіс. Шектелген нұсқа шектеусіз нұсқа сияқты қиын: шектеусіз нұсқаның Su инстанциясын беріп, шектеусіз нұсқаның жаңа инстанциясын құрастыру }. Su-ның әрбір шешімі Sr-дің шешімімен сәйкес келеді, бірақ T орнына 7 қосындысы бар, және Sr-дің әрбір элементі, оның ішінде, белгілі бір кіріс нұсқасында, кіріс (T/4, T/2) болуы керек, сонымен қатар, олардың барлығы да белгілі бір бүтін сандар болуы керек. Бұл да шектеусіз нұсқа сияқты қиын. Шектелмеген шығыс нұсқасында m шығыс қосалқы жиынтықтарының көлемі кез келген болуы мүмкін, міндетті түрде 3 емес (бірақ олардың сомасы T бірдей болуы керек). Шектелген шығыс нұсқасын шектелмеген нұсқаға дейін азайтуға болады: шектелген нұсқаның Sr инстанциясын беріп, 3m элементтері mT-ға дейін жинақталады, шектелмеген нұсқаның жаңа инстанциясын } құрастырады, 3m элементтері 7mT-ға дейін жинақталады және мақсатты сомасы 7. Sr-дің әрбір ерітіндісі табиғи түрде Su-ның ерітіндісіне сәйкес келеді. Керісінше, Su-ның әрбір шешімінде, мақсатты сома 7 болғандықтан және әрбір элемент , әр жиынтықта дәл 3 элемент болуы керек, сондықтан ол Sr-дің шешіміне сәйкес келеді. ABC бөлу мәселесі (шулай уҡ сандық 3d сәйкестендіру деп аталады) - 3 бүтін санды S жиынының орнына әрқайсысында m бүтін санды A, B, C үш жиыны бар нұсқасы. Барлық жиынтықтардағы сандардың қосындысы m T. Мақсат m үштік құрастыру, олардың әрқайсысында A, B және C элементтері бар, әр үштіктің қосындысы T. 4 бөлу мәселесі - бұл S құрамында n = 4 бүтін сан бар нұсқа, барлық бүтін сандардың қосындысы m T, және мақсат оны m төрттікке бөлу, барлығы T қосындысымен. Әрбір бүтін сан T/5 мен T/3 арасында қатаң болады деп болжауға болады. Дәл осыған ұқсас, ABCD parititon - әрқайсысында 4 кіріс жиынтығы бар және әр төртбұрышты әр жиынтықтан бір элемент болуы керек 4 бөлімнің нұсқасы.
In the distinct input variant, the inputs must be in (T/4, T/2), and in addition, they must all be distinct integers. It, too, is as hard as the unrestricted version. In the unrestricted output variant, the m output subsets can be of arbitrary size not necessarily 3 (but they still need to have the same sum T). The restricted output variant can be reduced to the unrestricted variant: given an instance Sr of the restricted variant, with 3m items summing up to mT, construct a new instance of the unrestricted variant }, with 3m items summing up to 7mT, and with target sum 7. Every solution of Sr naturally corresponds to a solution of Su. Conversely, in every solution of Su, since the target sum is 7 and each element is in , there must be exactly 3 elements per set, so it corresponds to a solution of Sr. The ABC partition problem (also called numerical 3 d matching) is a variant in which, instead of a set S with 3 integers, there are three sets A, B, C with m integers in each. The sum of numbers in all sets is m T. The goal is to construct m triplets, each of which contains one element from A, one from B and one from C, such that the sum of each triplet is T.
The 4 partition problem is a variant in which S contains n = 4 integers, the sum of all integers is m T, and the goal is to partition it into m quadruplets, all with a sum of T. It can be assumed that each integer is strictly between T/5 and T/3. Similarly, ABCD parititon is a variant of 4 partition in which each there are 4 input sets and each quadruplet should contain one element from each set.
Дәлелдендіру
Грей мен Джонсон (1975) бастапқыда 3 өлшеміне сәйкес келетін 3 өлшемді азайту арқылы 3 бөлуді NP толық деп дәлелдеді. Грей мен Джонсонның (1979) классикалық нұсқасы NP толықтығын дәлелдеуді сипаттайды, 3 өлшемді сәйкестендіруден 4 бөлікке дейін 3 бөлікке дейін азайтады. Логикалық тұрғыдан алғанда, қысқартуды бірнеше қадамға бөлуге болады.
Қолданбалар
3-бөлімнің NP қаттылығы тікбұрышты қаптаудың, сондай-ақ Tetris және басқа да жұмбақтардың, сондай-ақ кейбір жұмыс кестелеу мәселелерін дәлелдеу үшін пайдаланылды.