Kahn算法