嗯技术博客的第一篇文章----关于贪婪算法,自己在学习的过程中的一些思索。
1.问题描述
        给定有向图G=<V,E>,图中每一条边有非负权值,顶点u为源点,确定由u到其它顶点的最短路径。     
 
2.我的思索       
        所谓贪婪算法,即是每一步选取最优解,通过优化局部来使得求得的全局解为最优,这种全民皆兵的战略方针在约束函数的约束之下,自然得出了最优解。
        对于与源点u相邻近的顶点来说,自然可以通过简单的排序求得最短的边,那么与u路径较远的顶点呢?我们需要一步步的深度搜索各个可能的路径吗?事实是,往往我们被错综复杂的路径所迷惑。人类之所以能发展,是因为人类不断在探索并总结出一套属于人于自己的逻辑,这时候你应该能体会到数学的奥秘,那些推理的规范化格式,并不是说非得如此不可,而是让你明白思路的重要性。
        那么,好,我需要一个数组来标记已经确定了最短路径的顶点,设为S={u},最好再来一个数组标记未确定的顶点,那么T=V - {u}吧,那么去搜索吧,你会比较大小,大的pass小的留下。你总会遇到这种情况,有点顶点与u构成一条边但路径并不是最短,比如可以通过第三点,我要说这并不是简单的三角形三边关系,有些时候你必须考虑其它因素比如地理位置的特殊性等。这样看来,我们必须要建立自己的系统,告诉计算机先做什么后做什么,什么只是昙花一现什么该是永恒。实际上,我们只需要将S看作一个整体----因为u已经与S里面的点存在最短路径了,那么我们只需要比较所求的点到S里的点的的距离(t,x)+源点u到该点的最短距离(u,t)的大小就可以了。不是吗?