Intelligent Water Drops algorithm