algorithm design and artificial intelligence