How to prevent ga-Solver from accepting the first best solution?
    1 view (last 30 days)
  
       Show older comments
    
Hello,
I got a problem with the ga-Solver in my problem based optimization. I want to optimize costs of charging electric vehicles by increasing the self-consumption rate of my rooftop PV and avoiding charging during times of high electricity prices. Therefore I devided a day in 15 minute time steps (96 in total). I got a total charging-demand that needs to be satisfied at the end of the day. I also got known timeslots, in which my car is allowed to charge with a maximum amount of power. The code works and finds a solution that satisfies my constraints, however, I can tell that this is not the optimal solution, since electricity prices during other times of the day are lower and I got PV-electricity that is injected into the grid, although it could be used by my car.
This is the output I receive:
Single objective optimization:
192 Variable(s)
96 Integer variable(s)
96 Nonlinear inequality constraint(s)
289 Linear inequality constraint(s)
Options:
CreationFcn:       @gacreationuniformint
CrossoverFcn:      @crossoverlaplace
SelectionFcn:      @selectiontournament
MutationFcn:       @mutationpower
                                  Best          Mean         Stall
Generation      Func-count     Penalty         Penalty    Generations
    1             2000           69.82           108.2        0
    2             3000           69.82           106.7        1
    3             4000           69.82           105.2        2
    4             5000           69.82           103.9        3
    5             6000           69.82           102.3        4
    6             7000           69.82           100.6        5
    7             8000           69.82              99        6
    8             9000           69.82           96.68        7
    9            10000           69.82           94.65        8
   10            11000           69.82            92.6        9
   11            12000           69.82           90.99       10
   12            13000           69.82           89.18       11
   13            14000           69.82           87.48       12
   14            15000           69.82           85.95       13
   15            16000           69.82           84.38       14
   16            17000           69.82           83.05       15
   17            18000           69.82           81.41       16
   18            19000           69.82            80.4       17
   ... and so on. After 50 Generations it stops.
It seems to me that the solver immediately finds a solution space that satisfies all my constraints, but does not contain the optimal solution. I already increased the PopulationSize, changed the initial Points, but the result is always the same. The solution I get can be described as follows:
Beginning with the first 15-min timestep, the programm checks if the charging station is allowed to charge. If it can charge, it will. Then it procceeds with the next 15-min timestep. As soon as my charging demand for the regarding day is satisfied, it wont charge anymore. Everything that comes after is not important anymore.
Do you have any recommendation for me to solve my problem? Thanks in advance!
0 Comments
Answers (1)
  Alan Weiss
    
      
 on 14 Apr 2023
        
      Edited: Alan Weiss
    
      
 on 14 Apr 2023
  
      It is possible that you unknowingly set some constraints that keep the solution you want from being considered. It is very hard to debug these large problems. Why not give a better solution as the initial point and see what happens? If the solver immediately moves away froom the better point, well, that tells you something interesting.
There is a slight chance that using a different mutation function would help:
MutationFcn=@mutationgaussian
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
0 Comments
See Also
Categories
				Find more on Genetic Algorithm in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
