Using firefly algorithm to optimally size a hybrid renewable energy system constrained by battery degradation and considering uncertainties of power sources and loads | Synapse