Ant algorithms for discrete optimization