Jing's profile难得浮生半日闲PhotosBlogLists Tools Help

Blog


    July 14

    周游和速度

    在我们日常生活中, 会遇到各种各样的问题, 需要做各种各样的事情, 如何安排它们, 调度它们, 本身就很麻烦。 简单地看, 有两种做事情的态度, 一个是深度优先, 一个是广度优先。 这两个是计算机科学里面的常识性概念, 所谓深度优先, 就是遇到一个问题的子问题, 一定要把它搞清楚, 弄明白, 不然就不罢休, 不往下做。 广度优先就是先把一件事情做了再说, “如无必要, 不增实体”, 只要不影响整个事情的运行, 至于下面的细节怎么样, 如何做才最优最好, 先不去管它。

    象牙塔里的人们, 很多都是喜欢深度优先的。 对于一个事情, 一定要知道它的各种细节, 一定要求尽善尽美。 做学问, 不仅学了, 还总要问个为什么, 背后有什么道理, 有什么支撑, 这个道理可信吗? 如此等等。 很多时候, 我也很喜欢这样, 追根问底下去。 但是, 这样做往往会存在一定的危险, 很可能陷入到一个没有出口的陷井中去了, 知识是无穷尽的, 知识之间的依赖关系是千丝万缕的, 它有根有头吗? 我们不知道。 因此, 求知欲是个好东西, 但一种对于求知欲进行克制的意志也同样的重要。 但是, 如何既能到保持这种求知的态度, 又能够防止陷入可怕的知识陷井呢? 按照广度优先的思想, 就是把这些陷井记录下来,然后放到队列的尾部, 当这件事情做完了以后, 再去思考这些陷井或者子问题。

    宽度优先比深度优先有什么好处呢? 首先, 深度优先的人可能看不到全局, 它们知道某个东西是必要的, 某个东西是可能变得更优更好的, 于是就是做了。 但是, 这个东西并不一定是重要的, 做好了这个东西并不一定是有用的。 而且, 对于深度优先, 一个人无法预计完成一件事情需要多少时间和精力, 也很难有“成功”的那一天。 所谓“成功”是什么的? 它并不是客观的外在的东西, 而只是对自己的一个奖励。 当一个人想着“我成功了”的时候, 一般就是他做完成一件事情的时候。 当深度优先的时候, 人就深深地陷入陷入了, 很少有“成功”, 很少有可见的成果, 很少有对自己的奖励。 原来预定的计划无法完成, 原来的目标无法实现, 于是自信心受到了打击, 没有收到任何正反馈, 于是就气馁了, 前进的动力被阻力所消解了。 而当进行宽度优先的周游的时候, 一个任务可以是被完成多次的, 在每次完成过程中, 是逐步地深入的, 在每次完成过程中, 每个子问题都有可能得到进步, 于是, 人们在不断的自我鼓舞中前进, 在不断的正反馈中前进, 这是一个光明而愉快的过程。

    所以, 当进行深度优先的周游时, 它是很难进行下去的, 它会最终停止下来的; 当进行广度优先周游的时候, 这种工作方式是健康的愉快的, 它最终会获得越来越快的速度。 当由于进行深度周游而导致它被迫停下来的时候, 由于缺乏反馈而对原来的事情充满了冷漠, 它会感觉没有事情做, 会感到空虚和无聊, 可是它确实是具有能量的, 如何消耗这些能量呢? 一种方法是进行一些活动, 这些活动能够快速地得到一些反馈, 譬如说打游戏, 聊天…… 在这些活动中获得被动的反馈从而可以逃避孤独和恐惧。 还有可能的方法是用自卑自责来消耗自己, 自己和自己进行不懈地斗争, 有一段时间我就干过这样的事情, 每天写一篇日记骂自己。 这种斗争会使得心里非常烦乱, 原本前进的动能, 被转换成内部的热能了。 这样的方式, 都不是十分健康的。

    但是, 纯粹的广度优先一定会好吗? 按照传统的广度优先的思想, 它也会逐渐的深入的, 在深入的过程中, 一个事情必然会变得越来越大, 精力会被分散在各个不同的部分中, 于是, 越是后来, 完成一件事情的可能就越小, 慢慢的, 陷入纷繁复杂的小事情中了。 因此, 需要辨查和挑选哪些事情是需要做的, 哪些不需要。 这需要一种视野, 一种离开原来那个事情的视野, 为了防止不识庐山真面目, 只有跳出原来的问题, 这样, 才能理智地挑选一个子问题, 才能理智地把它丢弃掉, 而不是仅仅因为它没有给我反馈。 所以, 这就需要更加广泛的观察和思考, 这也避免了在广度优先中速度太快的问题, 毕竟, 速度太快了, 撞墙或者撞人的可能性会大许多。