A maintenance optimization approach based on genetic algorithm for multi-component systems considering the effect of human error