Fuzzy Cognitive Maps for Applied Sciences and Engineering:From Fundamentals to Extensions and Leaing Algorithms