A review of optimization techniques for hybrid renewable energy systems