示例#1
0
 def test_with_medium_input(self):
     self.setUp_medium()
     self.assertEqual(
         knapsack_solver(self.medium_1_items, 100), {
             'Value':
             1042,
             'Size':
             99,
             'Chosen': [
                 44, 49, 60, 77, 80, 83, 94, 104, 107, 117, 127, 134, 157,
                 160, 170
             ]
         })
     self.assertEqual(
         knapsack_solver(self.medium_2_items, 100), {
             'Value':
             969,
             'Size':
             100,
             'Chosen':
             [1, 10, 27, 28, 66, 120, 139, 145, 153, 155, 174, 188, 191]
         })
     self.assertEqual(
         knapsack_solver(self.medium_3_items, 100), {
             'Value':
             868,
             'Size':
             99,
             'Chosen': [
                 9, 14, 15, 47, 68, 108, 116, 120, 133, 154, 158, 161, 164,
                 170, 181, 198
             ]
         })
     self.cleanUp_medium()
 def test_with_small_input(self):
     self.setUp_small()
     self.assertEqual(knapsack_solver(self.small_1_items, 100), {
         'Value': 197,
         'Chosen': [1, 7, 8]
     })
     self.assertEqual(knapsack_solver(self.small_2_items, 100), {
         'Value': 259,
         'Chosen': [1, 9, 10]
     })
     self.assertEqual(knapsack_solver(self.small_3_items, 100), {
         'Value': 129,
         'Chosen': [4, 5, 7, 9]
     })
     self.cleanUp_small()
 def test_with_large_input(self):
     self.setUp_large()
     self.assertEqual(
         knapsack_solver(self.large_1_items, 100),
         {
             "Value":
             2640,
             "Chosen": [
                 44,
                 83,
                 104,
                 107,
                 134,
                 160,
                 239,
                 271,
                 295,
                 297,
                 308,
                 335,
                 337,
                 370,
                 373,
                 420,
                 432,
                 561,
                 566,
                 623,
                 648,
                 671,
                 693,
                 704,
                 737,
                 782,
                 795,
                 796,
                 814,
                 844,
                 866,
                 907,
                 909,
                 913,
                 935,
                 949,
                 987,
                 997,
             ],
         },
     )
     self.cleanUp_large()
 def test_with_small_input(self):
     self.setUp_small()
     self.assertEqual(
         knapsack_solver(self.small_1_items, 100),
         {
             "Value": 197,
             "Chosen": [
                 1,
                 7,
                 8,
             ],
         },
     )
     self.assertEqual(
         knapsack_solver(self.small_2_items, 100),
         {
             "Value": 259,
             "Chosen": [
                 1,
                 9,
                 10,
             ],
         },
     )
     self.assertEqual(
         knapsack_solver(self.small_3_items, 100),
         {
             "Value": 129,
             "Chosen": [
                 4,
                 5,
                 7,
                 9,
             ],
         },
     )
     self.cleanUp_small()
 def test_with_medium_input(self):
     self.setUp_medium()
     self.assertEqual(
         knapsack_solver(self.medium_1_items, 100),
         {
             "Value":
             1042,
             "Chosen": [
                 44,
                 49,
                 60,
                 77,
                 80,
                 83,
                 94,
                 104,
                 107,
                 117,
                 127,
                 134,
                 157,
                 160,
                 170,
             ],
         },
     )
     self.assertEqual(
         knapsack_solver(self.medium_2_items, 100),
         {
             "Value":
             969,
             "Chosen": [
                 1,
                 10,
                 27,
                 28,
                 66,
                 120,
                 139,
                 145,
                 153,
                 155,
                 174,
                 188,
                 191,
             ],
         },
     )
     self.assertEqual(
         knapsack_solver(self.medium_3_items, 100),
         {
             "Value":
             868,
             "Chosen": [
                 9,
                 14,
                 15,
                 47,
                 68,
                 108,
                 116,
                 120,
                 133,
                 154,
                 158,
                 161,
                 164,
                 170,
                 181,
                 198,
             ],
         },
     )
     self.cleanUp_medium()
示例#6
0
                        help='Output File',
                        required=True)
    args = parser.parse_args()
    in_algorithm = args.algorithm
    in_input_file = args.input_file
    in_output_file = args.output_file

    test = os.path.join(in_input_file)

    investors_data, obligations = parse_data_classic(test)
    investors_data_opt, obligations_opt, names = parse_data_optimize(test)

    if in_algorithm == 'base':
        print('--------------------------------------')
        first_v_time = timeit.default_timer()
        inv_data, obl_data = knapsack.knapsack_solver(investors_data,
                                                      obligations)
        first_v_time = timeit.default_timer() - first_v_time
        print('--------------------------------------')
        print('MEMORY INFO (USAGE MEM.):')
        print('Memory: {:.4f} MB'.format(mem_use_win32.get_memory_usage() /
                                         (1024. * 1024.)))
        print('--------------------------------------')
        print('Standart Algorithm without optimization:')
        print('Time: {:.4f} ms'.format(first_v_time * 1000))
        print('--------------------------------------')
        print(inv_data["total_reward"])
        for obligation in inv_data["items"]:
            print(
                str(obligation["day"]) + ' ' + str(obligation["name"]) + ' ' +
                str(obligation["price"]) + ' ' + str(obligation["amount"]))
        print('--------------------------------------')