Cuckoo Search Algorithm for Hybrid Flow Shop Scheduling Problem with Multi-layer Assembly Operations