vladofilipovic / universal-optimizer

Universal otimizer library
Apache License 2.0
1 stars 3 forks source link

problem with shaking_ls #13

Closed vladofilipovic closed 9 months ago

vladofilipovic commented 9 months ago

Command:

C:\vlado\Courses\Matf\----universal-optimizer\app\max_ones_problem>solver.py vns maximization --writeToOutputFile True --outputFilePath outputs/dimension_25.txt --inputFilePath inputs/dimension_25.txt --inputFormat txt --maxNumberIterations 50  --maxTimeForExecutionSeconds 0 --randomSeed 0 --evaluationCacheIsUsed False --calculationSolutionDistanceCacheIsUsed False --keepAllSolutionCodes False  --kMin 1 --kMax 3 --maxLocalOptima 5 --localSearchType local_search_best_improvement --solutionType BitArray 

Report:

2023-09-09 11:02:17,816 [solver.py:177] [ERROR] Exception: 'BitArray' object has no attribute 'len'.
Traceback (most recent call last):
  File "C:\vlado\Courses\Matf\----universal-optimizer\app\max_ones_problem\solver.py", line 159, in main
    optimizer.optimize()
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\metaheuristic.py", line 224, in optimize
    self.main_loop();
    ^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\metaheuristic.py", line 214, in main_loop
    self.main_loop_iteration()
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\variable_neighborhood_search\vns_optimizer.py", line 208, in main_loop_iteration
    while self.__shaking_ls__():
          ^^^^^^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\variable_neighborhood_search\vns_optimizer.py", line 173, in __shaking_ls__
    if not self.__problem_solution_vns_support.vns_randomize(self.__k_current, self.target_problem,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\app\max_ones_problem\max_ones_problem_binary_bit_array_solution_vns_support.py", line 70, in vns_randomize
    new_representation.invert(positions)
  File "C:\vlado\Courses\Matf\----universal-optimizer\.venv\Lib\site-packages\bitstring\classes.py", line 3161, in invert
    length = self.len
             ^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\.venv\Lib\site-packages\bitstring\classes.py", line 591, in __getattr__
    raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{attribute}'.")
AttributeError: 'BitArray' object has no attribute 'len'.
2023-09-09 11:02:17,816 [solver.py:177] [ERROR] Exception: 'BitArray' object has no attribute 'len'.
Traceback (most recent call last):
  File "C:\vlado\Courses\Matf\----universal-optimizer\app\max_ones_problem\solver.py", line 159, in main
    optimizer.optimize()
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\metaheuristic.py", line 224, in optimize
    self.main_loop();
    ^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\metaheuristic.py", line 214, in main_loop
    self.main_loop_iteration()
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\variable_neighborhood_search\vns_optimizer.py", line 208, in main_loop_iteration
    while self.__shaking_ls__():
          ^^^^^^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\uo\algorithm\metaheuristic\variable_neighborhood_search\vns_optimizer.py", line 173, in __shaking_ls__
    if not self.__problem_solution_vns_support.vns_randomize(self.__k_current, self.target_problem,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\app\max_ones_problem\max_ones_problem_binary_bit_array_solution_vns_support.py", line 70, in vns_randomize
    new_representation.invert(positions)
  File "C:\vlado\Courses\Matf\----universal-optimizer\.venv\Lib\site-packages\bitstring\classes.py", line 3161, in invert
    length = self.len
             ^^^^^^^^
  File "C:\vlado\Courses\Matf\----universal-optimizer\.venv\Lib\site-packages\bitstring\classes.py", line 591, in __getattr__
    raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{attribute}'.")
AttributeError: 'BitArray' object has no attribute 'len'.
vladofilipovic commented 9 months ago

Solved with VNS restructuring