<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _initial_population_gsa(population_size, solution_size, lower_bounds, upper_bounds):
 """Create a random initial population of floating point values. Args: population_size: an integer representing the number of solutions in the population. problem_size: the number of values in each solution. lower_bounds: a list, each value is a lower bound for the corresponding part of the solution. upper_bounds: a list, each value is a upper bound for the corresponding part of the solution. Returns: list; A list of random solutions. """

    if len(lower_bounds) != solution_size or len(upper_bounds) != solution_size:
        raise ValueError(
            "Lower and upper bounds much have a length equal to the problem size."
        )

    return common.make_population(population_size, common.random_real_solution,
                                  solution_size, lower_bounds, upper_bounds)