二三阅读

字: 大 中 小
关灯 护眼
二三阅读 > 燕归来 > 第一卷少年游 第一百二十八章试跑

第一卷少年游 第一百二十八章试跑

第一卷少年游 第一百二十八章试跑 (第1/2页)

原既白加入那个城市交通项目的第二天,就把自己过去最熟悉的一套做法带了进去。
  
  项目群里一共七个人,还没有谁真正见过谁。除了程砚,其他几个人来自不同城市,也都是清大新生,其中两个学计算方向,一个偏数学,一个准备读自动化,还有一个女生叫谢以宁,高中做过城市规划相关的社会调查。最初的目标并不大:拿公开道路数据、公交站点和一部分能够合法获得的匿名出行统计,先搭出一个极小的城区仿真,看看高峰时段几条主要道路拥堵怎样形成,再尝试改变信号灯或者公交班次,观察系统响应。程砚在群里反复强调“先做小”,甚至把第一阶段限制在十几个路口。可原既白看到原始数据以后,第一个感觉仍然是:如果底层结构不统一,后面所有工作都会不断返工。
  
  他花了一个上午读数据说明。
  
  文件来源不止一个,路网一套,公交线路一套,站点信息又是一套。看起来都是同一座城市,坐标格式却有两种;同一条路在不同文件里名称略有区别,有的带方向,有的不带;部分公交站沿用了旧名称,而道路数据已经更新;更麻烦的是,一些路口只有几何位置,没有明确的拓扑关系,需要从线段相交和道路方向自己恢复。原既白最开始还觉得这些都属于“清洗问题”,真正做了两个小时,才发现“清洗”这个词过于轻描淡写。它听起来像把脏东西去掉,剩下的就是真实;可这里很多差异不是脏,而是数据最初就为了不同目的采集。
  
  公交系统关心一辆车在哪停。
  
  道路系统关心哪条线连哪条线。
  
  城市规划数据关心土地和片区。
  
  每一个系统都在描述同一座城,却不是为了描述同一个“城市”。
  
  原既白还是开始设计统一结构。
  
  他画了一套节点、道路、站点、线路和时间属性之间的关系,试图让几种数据都映射进去。第一版很快,第二版开始补异常,第三版又加入版本信息。他越来越觉得这件事有一种熟悉的美感:原本混乱的东西经过重新定义以后逐渐变得干净,每个对象都有位置,每种关系都有边界。到晚上,他甚至写出一个转换脚本,已经能把大部分道路和站点映射到新格式里。
  
  他把结果发进群。
  
  程砚半小时以后回了一句:
  
  **挺漂亮。**
  
  原既白看见这三个字,第一反应并不是高兴。
  
  因为后面还有一句:
  
  **但你把我们明天要跑的那段路删掉了。**
  
  原既白愣了一下。
  
  程砚发来一个路口编号。
  
  那是数据里一个非常奇怪的地方:道路文件显示两条线相交,公交数据也有站点靠近,可拓扑信息里两条路并不连通。原既白在转换时把其中一条判断为旧数据,暂时标成异常,没有纳入主路网。
  
  程砚问他为什么删。
  
  原既白解释完,对方发来一张地图截图。路口实际存在,而且是目标区域里一条很重要的支路。
  
  “那原始拓扑错了。”原既白说。
  
  程砚回:
  
  **也不一定。那下面可能有高差。**
  
  几分钟以后,谢以宁又发了一张街景截图。
  
  原来两条路虽然平面投影相交,实际一条从另一条上方跨过去,中间没有匝道,所以原始拓扑“不连通”反而可能是对的;真正有问题的是公交站点文件,其中一个站名仍然沿用几年前道路改造前的位置。原既白重新看自己设计的统一结构,第一次发现它并不是“过于粗糙”,恰恰相反,它过于完整,以至于在数据证据不足的时候替现实做了一次决定。
  
  如果只看平面坐标,两条路应该相交。
  
  如果只看公交站点,它们似乎也应该连接。
  
  如果只看拓扑,又不连。
  
  三种来源彼此冲突。
  
  他为了得到一个可用的系统,选择了其中一种解释。
  
  而且选得很自然。
  
  程砚没有批评他,只说先别修大框架,明天大家一起把目标区域十几个路口人工核一下。“我们现在不是做全城数字底座。”他说,“先确认这十几个路口到底怎么长。”
  
  原既白盯着那句话看了一会儿。
  
  **怎么长。**
  
  不是“怎么编码”。
  
  不是“怎么统一”。
  
  是现实里到底长什么样。
  
  他把自己写了半天的转换脚本留着,没有继续改。
  
  第二天上午,七个人第一次开视频会议。
  
  程砚和群里聊天时差不多,语速快,头发有点乱,背后不是书架,而是一面贴满便签纸的白墙。谢以宁坐在一个光线很好的房间里,桌上摊着纸质城市地图。她来自那座项目城市本地,对十几个目标路口里至少一半有生活经验,真正开始核查以后,很多其他人只会从数据看出来的异常,她一眼就知道现实原因。某条路在地图上是双向,实际上早晚高峰有临时交通管制;一个公交站数据上还存在,本地人却知道因为修地铁已经迁移几百米;另一条看起来很宽的主干道,真正最堵的不是车道数不够,而是旁边一所学校每天放学时大量家长临时停车。
  
  这些信息原既白几乎都没有。
  
  公开数据里当然可能找到一部分。
  
  可不是自动躺在那里等他读取。
  
  有些来自城市公告,有些来自新闻,有些甚至只是本地人在那里生活几年以后自然知道的常识。
  
  他第一次对“真实数据”这个词产生了明显的不信任。
  
  以前高中做程序,数据通常已经有人整理过;竞赛题里的条件更不必说,题目告诉你什么,默认就是世界的全部。现在他们想模拟一块真实城区,却发现最难的不是公式,而是根本不知道哪些因素已经进入数据,哪些还在数据外面。
  
  会议开到第二个小时,程砚把原既白昨天那套统一结构投到屏幕上。
  
  “这个不是不用。”他说,“以后肯定会用。但我建议先缩。”
  
  原既白问:“缩到什么程度?”
  
  “只定义我们现在确认得了的。”
  
  这句话让他有一点不舒服。
  
  不是因为反对,而是因为它违背了他很深的一种习惯。一个系统如果只定义眼前能确认的东西,很容易不断长补丁,最后失去整体。可反过来,如果先定义一个足够漂亮的整体,再把现实塞进去,也可能在第一步就把还没弄清的东西错误归类。
  
  他没有立即同意,也没有坚持。
  
  会议结束以后,把那套结构复制了一份。
  
  原文件保留。
  
  新文件删掉将近一半字段。
  
  不是因为那些字段没价值,而是暂时没有足够证据让它们成为事实。
  
  做完以后,他给江遥发了一张前后对比图。
  
  江遥正好在读第二章科学史。
  
  她看了半天,问:
  
  **你删这么多?**
  
  原既白回:
  
  **先不替数据决定。**
  
  江遥过了一会儿发来:
  
  **有进步。**
  
  他看到这三个字有一点不服。
  
  **你最近也开始给我当老师了?**
  
  江遥没有回。
  
  十分钟以后发来一张自己书页的照片,上面密密麻麻都是铅笔问号,旁边写着一句:
  
  **我今天也没资格。**
  
  原既白笑了一下。
  
  ---
  
  江遥第二次参加读书会时没有领读。
  
  她原本以为不负责讲会轻松很多,真正坐进去以后却发现,作为听的人反而更容易暴露自己不知道什么。第二章的领读者是那个喜欢物理史的男生,叫孟川,来自北方另一座大城市。他没有做精致幻灯片,只拿一张时间线和几幅古地图,讲的是测量、航海、国家治理和知识制度之间怎样互相推动。江遥本来以为重点会落在天文学和力学,结果孟川用了很长时间讲港口税收、土地测量和地图制作。
  
  她一开始甚至有点不耐烦。
  
  航海需要更准确的天文,测量需要数学,这些她当然能理解。可为什么税收和土地登记也值得讲那么久?
  
  孟川举了一个很普通的例子:一个国家想知道自己拥有多少土地、从哪里征税、道路怎么修、边界在哪里,就必须把复杂现实变成可以登记和比较的形式。地图不只是“描绘世界”,有时也是管理世界的工具。画一条边界、给一个地方命名、把人口放进表格,都会让现实变得更可计算,却也可能让一些原本模糊的东西被迫变得确定。
  
  江遥听到这里时,突然想起山里的旧路。
  
  地图上仍然存在。
  
  现实已经塌了。
  
  也想起旧水文站里那个自动传感器。
  
  以及原既白昨天发来的交通数据。
  
  这种联系出现得太顺,她反而没有立刻发言。
  
  过去她一旦想到一个跨领域的结构,往往会非常兴奋,现在越来越习惯先放着。几分钟以后,另一个女生提出一个完全不同的问题:地图到底是谁画给谁看的?如果同一个地方由军队画、商人画、当地居民画,什么被标出来、什么被省略,会不会完全不同?
  
  这一下比江遥刚才那个“地图可能过时”的想法更远。
  
  不是模型和现实之间有误差。
  
  而是模型在诞生以前,就已经带着目的。
  
  她在本子上写:
  
  **表示不是透明的。**
  
  

(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』
热门推荐
极品全能学生 凌天战尊 御用兵王 帝霸 开局奖励一亿条命 大融合系统 冷情帝少,轻轻亲 妖龙古帝 宠妃难为:皇上,娘娘今晚不侍寝 仙王的日常生活