Cultural algorithms: theory and applications