A general flow shop scheduling problem with consideration of position-based learning effect and multiple availability constraints