Slide 22
Slide 22 text
/26
22
L1 = {0} [ ({0} + 1)
= {0, 1}
AAACH3icbVDLSgMxFM34rPVVdekmWJSKUmaqqBuh6MaFiwr2AU0pmTTThmYeJHeEMsyfuPFX3LhQRNz1b0wfC209EDiccy4397iRFBpse2gtLC4tr6xm1rLrG5tb27md3ZoOY8V4lYUyVA2Xai5FwKsgQPJGpDj1Xcnrbv925NefuNIiDB5hEPGWT7uB8ASjYKR27uK+7eCja0wSm6SYsDjCRHIPChPhBDtEiW4PjgnJTmKnRkrbubxdtMfA88SZkjyaotLOfZNOyGKfB8Ak1brp2BG0EqpAMMnTLIk1jyjr0y5vGhpQn+tWMr4vxYdG6WAvVOYFgMfq74mE+loPfNckfQo9PeuNxP+8ZgzeVSsRQRQDD9hkkRdLDCEelYU7QnEGcmAIZUqYv2LWo4oyMJVmTQnO7MnzpFYqOmfF0sN5vnwzrSOD9tEBKiAHXaIyukMVVEUMPaNX9I4+rBfrzfq0vibRBWs6s4f+wBr+AJ0cnv4=
L2 = {0, 1} [ ({0, 1} + 4)
= {0, 1, 4, 5}
AAACK3icbVDLSgMxFM3UV62vUZdugkWpWMpMrehGEN24cKFgtdAMJZNm2tDMg+SOUIb+jxt/xYUufODW/zCtRdR6IHA451xu7vETKTQ4zquVm5qemZ3LzxcWFpeWV+zVtWsdp4rxOotlrBo+1VyKiNdBgOSNRHEa+pLf+L3ToX9zy5UWcXQF/YR7Ie1EIhCMgpFa9sl5q4q3jzDJnDJ2yQATliaYSB5A6VvbxTWiRKcLO4QUvsNlXCvjfTJo2UWn4oyAJ4k7JkU0xkXLfiTtmKUhj4BJqnXTdRLwMqpAMMkHBZJqnlDWox3eNDSiIddeNrp1gLeM0sZBrMyLAI/UnxMZDbXuh75JhhS6+q83FP/zmikEh14moiQFHrGvRUEqMcR4WBxuC8UZyL4hlClh/opZlyrKwNRbMCW4f0+eJNfVirtXqV7Wiscn4zryaANtohJy0QE6RmfoAtURQ3foAT2jF+veerLerPevaM4az6yjX7A+PgESm6F1
L3 = {0, 1, 4, 5} [ ({0, 1, 4, 5} + 5)
= {0, 1, 4, 5, 6, 9, 10}
AAACQXicbVBLSysxGM34tveqVZduPixeFIcy49uFILpx4ULBaqEpJZNm2tDMg+QboQz9a278B+7cu3GhiFs3prULb/VAwsk53yHJCVIlDXreozM2PjE5NT0zW/jzd25+obi4dG2STHNR4YlKdDVgRigZiwpKVKKaasGiQImboHPa929uhTYyia+wm4p6xFqxDCVnaKVGsXre2IZ/R0BzzwXfhR0XdmkPKM9SoEqEuD7ibNpdy1YbNygtjARd2HPh0B492msUS17ZGwB+En9ISmSIi0bxgTYTnkUiRq6YMTXfS7GeM42SK9Er0MyIlPEOa4mapTGLhKnngwZ6sGaVJoSJtitGGKjfEzmLjOlGgZ2MGLbNqNcXf/NqGYYH9VzGaYYi5l8XhZkCTKBfJzSlFhxV1xLGtbRvBd5mmnG0pRdsCf7ol3+S662yv13eutwpHZ8M65ghK2SVrBOf7JNjckYuSIVwckeeyAt5de6dZ+fNef8aHXOGmWXyH5yPT2pQpgk=
{x1, x2, . . . , xi
}
AAACBHicbVC7TsMwFHXKq5RXgLGLRYXEUFVJQYKxgoWxSPQhNVHkOE5r1Ykj20Gtogws/AoLAwix8hFs/A1umwFajnSl43Pule89fsKoVJb1bZTW1jc2t8rblZ3dvf0D8/CoK3kqMOlgzrjo+0gSRmPSUVQx0k8EQZHPSM8f38z83gMRkvL4Xk0T4kZoGNOQYqS05JlVJ5t4dh1OvGYdOizgSs4eGc2d3DNrVsOaA64SuyA1UKDtmV9OwHEakVhhhqQc2Fai3AwJRTEjecVJJUkQHqMhGWgao4hIN5sfkcNTrQQw5EJXrOBc/T2RoUjKaeTrzgipkVz2ZuJ/3iBV4ZWb0ThJFYnx4qMwZVBxOEsEBlQQrNhUE4QF1btCPEICYaVzq+gQ7OWTV0m32bDPG827i1rruoijDKrgBJwBG1yCFrgFbdABGDyCZ/AK3own48V4Nz4WrSWjmDkGf2B8/gAUjZcc
部分問題 の解を利用して を得ることを考える
{x1, x2, . . . , xi 1
}
AAACBnicbVDLSsNAFJ34rPUVdSnCYBFc1JJUQZdFNy4r2Ac0IUwmk3boJBNmJtISunLjr7hxoYhbv8Gdf+OkzUJbD1w4c869zL3HTxiVyrK+jaXlldW19dJGeXNre2fX3NtvS54KTFqYMy66PpKE0Zi0FFWMdBNBUOQz0vGHN7nfeSBCUh7fq3FC3Aj1YxpSjJSWPPPIyUaeXYUjr16FDgu4kvkjo2f2xJl4ZsWqWVPARWIXpAIKND3zywk4TiMSK8yQlD3bSpSbIaEoZmRSdlJJEoSHqE96msYoItLNpmdM4IlWAhhyoStWcKr+nshQJOU48nVnhNRAznu5+J/XS1V45WY0TlJFYjz7KEwZVBzmmcCACoIVG2uCsKB6V4gHSCCsdHJlHYI9f/Iiaddr9nmtfndRaVwXcZTAITgGp8AGl6ABbkETtAAGj+AZvII348l4Md6Nj1nrklHMHIA/MD5/AP7Ol44=
以下の中で最大の要素和を求めるアルゴリズム
t
AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsN+3azSbsToQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IJHCoOt+O4W19Y3NreJ2aWd3b/+gfHjUNnGqGW+xWMa6E1DDpVC8hQIl7ySa0yiQ/CEY3878hyeujYjVPU4S7kd0qEQoGEUrNbFfrrhVdw6ySrycVCBHo1/+6g1ilkZcIZPUmK7nJuhnVKNgkk9LvdTwhLIxHfKupYpG3PjZ/NApObPKgISxtqWQzNXfExmNjJlEge2MKI7MsjcT//O6KYbXfiZUkiJXbLEoTCXBmMy+JgOhOUM5sYQyLeythI2opgxtNiUbgrf88ipp16reRbXWvKzUb/I4inACp3AOHlxBHe6gAS1gwOEZXuHNeXRenHfnY9FacPKZY/gD5/MH4XeM/A==
S = {1, 4, 5}
AAAB8nicbVBNS8NAEJ34WetX1aOXxSJ4KCWpFb0IRS8eK9oPSELZbDft0k027G6EEvozvHhQxKu/xpv/xm2bg7Y+GHi8N8PMvCDhTGnb/rZWVtfWNzYLW8Xtnd29/dLBYVuJVBLaIoIL2Q2wopzFtKWZ5rSbSIqjgNNOMLqd+p0nKhUT8aMeJ9SP8CBmISNYG8l9uPYyp1KvXHiTXqlsV+0Z0DJxclKGHM1e6cvrC5JGNNaEY6Vcx060n2GpGeF0UvRSRRNMRnhAXUNjHFHlZ7OTJ+jUKH0UCmkq1mim/p7IcKTUOApMZ4T1UC16U/E/z011eOVnLE5STWMyXxSmHGmBpv+jPpOUaD42BBPJzK2IDLHERJuUiiYEZ/HlZdKuVZ3zau2+Xm7c5HEU4BhO4AwcuIQG3EETWkBAwDO8wpulrRfr3fqYt65Y+cwR/IH1+QOKx5Ae
t = 7
AAAB6nicbVDLSgNBEOyNrxhfUY9eBoPgKexGIV6EoBePEc0DkiXMTmaTIbOzy0yvEEI+wYsHRbz6Rd78GyfJHjSxoKGo6qa7K0ikMOi6305ubX1jcyu/XdjZ3ds/KB4eNU2casYbLJaxbgfUcCkUb6BAyduJ5jQKJG8Fo9uZ33ri2ohYPeI44X5EB0qEglG00gNeV3vFklt25yCrxMtICTLUe8Wvbj9macQVMkmN6Xhugv6EahRM8mmhmxqeUDaiA96xVNGIG38yP3VKzqzSJ2GsbSkkc/X3xIRGxoyjwHZGFIdm2ZuJ/3mdFMMrfyJUkiJXbLEoTCXBmMz+Jn2hOUM5toQyLeythA2ppgxtOgUbgrf88ippVsreRblyf1mq3WRx5OEETuEcPKhCDe6gDg1gMIBneIU3RzovzrvzsWjNOdnMMfyB8/kD3EWNhA==
例.
-> 長さを限定すれば多項式になるのでは?
2i
AAAB6nicbVBNS8NAEJ34WetX1aOXxSJ4KkkV9Fj04rGi/YA2ls120y7dbMLuRCihP8GLB0W8+ou8+W/ctjlo64OBx3szzMwLEikMuu63s7K6tr6xWdgqbu/s7u2XDg6bJk414w0Wy1i3A2q4FIo3UKDk7URzGgWSt4LRzdRvPXFtRKwecJxwP6IDJULBKFrpvvooeqWyW3FnIMvEy0kZctR7pa9uP2ZpxBUySY3peG6CfkY1Cib5pNhNDU8oG9EB71iqaMSNn81OnZBTq/RJGGtbCslM/T2R0ciYcRTYzoji0Cx6U/E/r5NieOVnQiUpcsXmi8JUEozJ9G/SF5ozlGNLKNPC3krYkGrK0KZTtCF4iy8vk2a14p1XqncX5dp1HkcBjuEEzsCDS6jBLdShAQwG8Ayv8OZI58V5dz7mrStOPnMEf+B8/gD1po2V
の長さは になることがある
-> 一般には指数時間アルゴリズム
Li
AAAB6nicbVA9SwNBEJ3zM8avqKXNYhCswl0UtAzaWFhENB+QHGFvM5cs2ds7dveEcOQn2FgoYusvsvPfuEmu0MQHA4/3ZpiZFySCa+O6387K6tr6xmZhq7i9s7u3Xzo4bOo4VQwbLBaxagdUo+ASG4Ybge1EIY0Cga1gdDP1W0+oNI/loxkn6Ed0IHnIGTVWerjr8V6p7FbcGcgy8XJShhz1Xumr249ZGqE0TFCtO56bGD+jynAmcFLsphoTykZ0gB1LJY1Q+9ns1Ak5tUqfhLGyJQ2Zqb8nMhppPY4C2xlRM9SL3lT8z+ukJrzyMy6T1KBk80VhKoiJyfRv0ucKmRFjSyhT3N5K2JAqyoxNp2hD8BZfXibNasU7r1TvL8q16zyOAhzDCZyBB5dQg1uoQwMYDOAZXuHNEc6L8+58zFtXnHzmCP7A+fwBHtaNsA==
を の各部分集合の要素の和で を超えないもののリストとする
Li
AAAB6nicbVA9SwNBEJ3zM8avqKXNYhCswl0UtAzaWFhENB+QHGFvM5cs2ds7dveEcOQn2FgoYusvsvPfuEmu0MQHA4/3ZpiZFySCa+O6387K6tr6xmZhq7i9s7u3Xzo4bOo4VQwbLBaxagdUo+ASG4Ybge1EIY0Cga1gdDP1W0+oNI/loxkn6Ed0IHnIGTVWerjr8V6p7FbcGcgy8XJShhz1Xumr249ZGqE0TFCtO56bGD+jynAmcFLsphoTykZ0gB1LJY1Q+9ns1Ak5tUqfhLGyJQ2Zqb8nMhppPY4C2xlRM9SL3lT8z+ukJrzyMy6T1KBk80VhKoiJyfRv0ucKmRFjSyhT3N5K2JAqyoxNp2hD8BZfXibNasU7r1TvL8q16zyOAhzDCZyBB5dQg1uoQwMYDOAZXuHNEc6L8+58zFtXnHzmCP7A+fwBHtaNsA==
{x1, x2, . . . , xi
}
AAACBHicbVC7TsMwFHXKq5RXgLGLRYXEUFVJQYKxgoWxSPQhNVHkOE5r1Ykj20Gtogws/AoLAwix8hFs/A1umwFajnSl43Pule89fsKoVJb1bZTW1jc2t8rblZ3dvf0D8/CoK3kqMOlgzrjo+0gSRmPSUVQx0k8EQZHPSM8f38z83gMRkvL4Xk0T4kZoGNOQYqS05JlVJ5t4dh1OvGYdOizgSs4eGc2d3DNrVsOaA64SuyA1UKDtmV9OwHEakVhhhqQc2Fai3AwJRTEjecVJJUkQHqMhGWgao4hIN5sfkcNTrQQw5EJXrOBc/T2RoUjKaeTrzgipkVz2ZuJ/3iBV4ZWb0ThJFYnx4qMwZVBxOEsEBlQQrNhUE4QF1btCPEICYaVzq+gQ7OWTV0m32bDPG827i1rruoijDKrgBJwBG1yCFrgFbdABGDyCZ/AK3own48V4Nz4WrSWjmDkGf2B8/gAUjZcc
t
AAAB6HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mqoMeiF48t2FpoQ9lsN+3azSbsToQS+gu8eFDEqz/Jm//GbZuDtj4YeLw3w8y8IJHCoOt+O4W19Y3NreJ2aWd3b/+gfHjUNnGqGW+xWMa6E1DDpVC8hQIl7ySa0yiQ/CEY3878hyeujYjVPU4S7kd0qEQoGEUrNbFfrrhVdw6ySrycVCBHo1/+6g1ilkZcIZPUmK7nJuhnVKNgkk9LvdTwhLIxHfKupYpG3PjZ/NApObPKgISxtqWQzNXfExmNjJlEge2MKI7MsjcT//O6KYbXfiZUkiJXbLEoTCXBmMy+JgOhOUM5sYQyLeythI2opgxtNiUbgrf88ipp16reRbXWvKzUb/I4inACp3AOHlxBHe6gAS1gwOEZXuHNeXRenHfnY9FacPKZY/gD5/MH4XeM/A==
S + x = {s + x : s 2 S}
AAACCXicbVDLSgMxFM3UV62vUZdugkUQhDJTBYUiFN24rNQ+oBlKJk3b0ExmSDJiGbp146+4caGIW//AnX9jpp2Fth4IOZxz703u8SPOlHacbyu3tLyyupZfL2xsbm3v2Lt7TRXGktAGCXko2z5WlDNBG5ppTtuRpDjwOW35o+vUb91TqVgo7vQ4ol6AB4L1GcHaSF0b1k8e4CVEiTI3qqB0okAVqCBiAtbRpGsXnZIzBVwkbkaKIEOta3+hXkjigApNOFaq4zqR9hIsNSOcTgooVjTCZIQHtGOowAFVXjLdZAKPjNKD/VCaIzScqr87EhwoNQ58UxlgPVTzXir+53Vi3b/wEiaiWFNBZg/1Yw51CNNYYI9JSjQfG4KJZOavkAyxxESb8AomBHd+5UXSLJfc01L59qxYvcriyIMDcAiOgQvOQRXcgBpoAAIewTN4BW/Wk/VivVsfs9KclfXsgz+wPn8AbiSYRg==
重複を削除しつつ更新
条件を満たさないものを削除