生儿育女的算法应用

有没有设想过,生活中突然多了个孩子会是什么体验?少女辣妈?人生巅峰?多了个玩具?

Too young too naïve,历劫回归的 emily (编辑注:作者陈湘玲的英文名)告诉大家,现实是:产检一大早排队、一大堆证件要办、十级阵痛的煎熬、奶妈无证上岗的各种疼与累…

如何更科学应对人生新阶段?这些日子我到底经历了什么?又跟算法有什么联系?请听我徐徐道来。

一.孕期

1. 证件办理 — 37%法则

3 月~8 月期间,我前后奔跑拿下了这些证书:商品房买卖合同书、结婚证、准生证、户口本。为啥会如此奔波呢?

其实在确认怀孕后,一般程序都是准备办理准生证了,办理准生证本身就很麻烦,作为一个持有广州集体户口的人来说这事就更复杂。

要办理准生证,通过一系列的推理,当前我的目标就是要先买房。我给自己定的 deadline 是一个半月(时不我待啊要 12 周建档了),也就是一个半月内我需要买到房子并且已经到房管局做好备案,那么我最迟一个月内就要挑中房子签好购房合同。白天还要上班,那么多的房子需要去看,挑战这么大,我要怎么办?

  • 37%法则 — 专治选择困难症

37%法则:又名未婚妻问题,是指在 n 个候选中只能选一个,不能回头反悔的前提下,抛弃前 37%个,在后 63%个候选中选取第一个比前 7 个候选好的。

推导原理详见:死理性派恋爱法:拒绝掉前面37%的人,适用于恋爱、购物等场景,屡试不爽。

那用在买房的需求上,就是可以这么操作:在第一阶段,我只看不买,就是根据自己的购买能力,了解一下市场上哪些房子我喜欢,哪些我不喜欢,记住在这个阶段内我看到过的最满意的那个房子。 等到过了 37%这个时间点之后 ,我就进入第二阶段,从这天开始,一旦遇到一个比第一阶段那个最好的房子好,或者类似的房子,就毫不犹豫地买下来。

根据这个法则,我们需要先定义"好"的概念,对我来说好的房子满足以下条件:

1)软条件:布局、房间数、朝向、方位

2)硬条件:业主可以尽快过户或直接看一手房

根据这个法则,我顺利地在 15 天后找到合适的房子,买了下来。于是证件问题就陆续解决了。

2.日常产检 — 作业调度算法

只要去过医院的人都知道,每次都是等、等、等。不同孕周的产检项如下图所示,整个怀孕过程产检次数不低于 10 次。

若每次都是等个大半天到一天才产检完,那么我用于产检的总时间就相当于 10 天了!不得了啊,一是作为孕妇很疲惫,二是影响上班和其他安排。于是在第三次产检第,我就开始思考:怎么样才能让自己的产检更快完成?

  • 作业调度算法 -- 专治任务管理问题

产检的本质,就是作业调度,选 24 周为例子,要做的产检项那么多,也就是要执行的进程有这么多个的时候,如何使用调度算法来达到最优?

我们先细化下每个产检项所需的时间和优先级,优先级按照是否必须预约或开单来定。

产检项

所需时间

优先级

备注

B 超大排畸

约 2h

PO

B 超都是当次预约生效,错过这次就得重新预约

测体重

5mins

P2

无需开单,随时可进行

测血压

10mins

P2

无需开单,随时可进行

测宫高腹围

23mins

P1

需要医生开单

多普勒胎心

25mins

P1

需要医生开单

注:每个项目都包含了该项目的排队时间。

根据长期探索,emily 根据所在的南医三院的情况,DIY 了一个算法组合:拆分任务 定优先级 短作业优先算法,来达到产检最高效率。

1)拆分任务

首先把上述产检项,能细化步骤的进行拆分(蓝色部分为拆分出来的步骤):

产检项

所需时间

优先级

备注

B 超大排畸

1h

PO

B 超都是当次预约生效,错过这次就得重新预约

拿 B 超报告单

20mins

P2

报告单一般需要 20mins 出

问医生结果

30mins

P2

包含排队时间,查看结果一般要等前面就诊的人先完成

测体重

5mins

P2

无需开单,随时可进行

测血压

10mins

P2

无需开单,随时可进行

测宫高腹围

23mins

P1

需要医生开单

多普勒胎心

25mins

P1

需要医生开单

2)调度算法选择

① FCFS 先来先服务——适用于长作业

先来先服务(FCFS, First Come First Serve)是最简单的调度算法,按先后顺序进行调度。

定义:按照作业提交或进程变为就绪状态的先后次序,分派 CPU;当前作业或进程占用 CPU,直到执行完或阻塞,才出让 CPU(非抢占方式)。在作业或进程唤醒后(如 I/O 完成),并不立即恢复执行,通常等到当前作业或进程出让 CPU。

② SJF 短作业优先 — 适用于短作业

短作业优先(SJF, Shortest Job First)又称为"短进程优先"SPN(Shortest Process Next);这是对 FCFS 算法的改进,其目标是减少平均周转时间。

定义:对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。

由于产检的长作业相对比较少(一般 1~2 个),短作业比较多,所以我用 SJB 为主算法来执行产检流程。

3)拆分任务 定优先级 短作业优先算法组合

目前已完成了拆分任务,定优先级和了解了短作业优先算法,如何结合使用呢?

首先,按照优先级排列当前任务:

其次,到达的同个优先级的事项,把执行时间短的提前:

根据这个原则,把无效的等待时间都灵活安排起来,极大提高了我的产检效率,从原来的 1 天到最后的 2h,都有赖于调度算法的改良使用。

3.生育知识学习 — 30mins 速读法

刚知道怀孕那会,特兴奋,一口气把畅销榜前十名的孕教育儿书给买了。但是真正开看的时候开始犯愁了。这么多书都写了这类内容,看一本的时间很长,很容易忘记,要怎么看书才合适?

  • 30mins 速读法 — 专治海量阅读问题

在这里介绍个 30mins 速读法。

于是我从中得到的读书笔记如下图所示,也方便我对同类内容做对比:

4.物资准备 — 复用经验数据库 关联规则挖掘法

随着分娩的临近,需要开始准备待产包和婴儿用品了。该怎么去罗列这些物资呢?

  • 复用经验数据库 — 专治分类问题

复用经验数据库,简单来讲,就是询问他人的物资清单,先罗列出一批物资分类。

  • 利用关联规则挖掘法 — 专治迷茫剁手党

什么是关联规则挖掘技术?

关联规则挖掘的根本目的是寻找商品销售记录中的相关性,从而更好地指导销售策略的制定。一个典型的规则是:"43%购买了雀巢速溶咖啡的顾客都会购买雀巢咖啡伴侣"。基于这个规则,在实体超市中,应当把这两种产品放到相近的地方,而在网上超市中,如果顾客购买了雀巢速溶咖啡却没有购买咖啡伴侣,则可以在关联商品栏目中添加相应的推荐。现在很多企业已经认识到详细的原始购买记录的重要性,并且建立了规范的数据仓库,这些都为关联规则挖掘技术的应用奠定了良好的基础。

在借鉴别人经验,罗列出初步的物资分类后,具体物资要买哪个型号,或者是否需要做物资补充,可以上熟悉的购物网站,利用当前的关联规则挖掘方案,来补全:

根据上述方法,我的物资准备清单就完成了!需要详细清单可以私聊找我拿。

二.分娩期

怀胎十月,总算快到了瓜熟蒂落的阶段。需要如何做准备才能心中有数呢?根据经验,这个阶段最重要的是做到这两点:风险评估。

1.风险评估 — 启发式风险模型

  • 启发式风险模型 — 专治万一问题

启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。这个方法可以追溯到希腊的哲学家,是 George Polya 在由他所写的著名的《如何解答它》一书中引进的。"启发式的推理不仅仅是关注结果的和严谨的,而仅仅是临时的和不严谨的,它的目的是发现当前问题的解决方法。"

启发式的方法常常出现在诸如自由问答、建议,或者向导中。

那跟分娩有啥联系呢?我们可以用"万一"来理解这种模型。

√ 确定性:万一我在上班时发动了?

√ 可靠性:万一发动时交通阻塞了?

√ 可用性:万一医院没床位?

√ 通用性:万一待产包不在身上?

...

基于启发式风险模型,我给自己准备了一个分娩代办事项 list:

deadline

事项

预产期前两周

确认住院必须的证件已放在包内

将入院必须带的物品放在包里

把放置包的位置告诉家人

准备好出院时需要的大人和宝宝的用品

确认到医院的最佳路线

有人陪同的情况下行动,一有动静马上到医院报到。

三.哺乳期

费尽九牛二虎之力,总算跨过鬼门关成功当了妈。本来以为可以好好踹口气,谁知新问接踵而至:

产后涨奶怎么办?

宝宝一直哭不睡啊怎么办?

坐月子是吃补还是不吃补?

坐月子能不能洗头?

...

于是这个时期,咱们的关键任务有两个:修身齐家、新手上路。

1.修身齐家 — 控制变量对比法

这里的修身齐家,指的是养好身体坐好月子,并且保持稳定和谐的家庭关系。但是问题来了,娃不睡觉啊我要怎么修身齐家?

在这里,介绍一个控制变量对比法给大家。

  • 控制变量对比法 — 专治找问题根因

控制变量对比法:对于多因素(多变量)的问题,常常采用控制因素(变量)的方法,把多因素的问题变成多个单因素的问题,而只改变其中的某一个因素,从而研究这个因素对事物影响,分别加以研究,最后再综合解决,这种方法叫控制变量法。它是科学探究中的重要思想方法,广泛地运用在各种科学探索和科学实验研究之中。

针对孩子不睡问题,我们选出可能的几个变量:吃饱程度、睡眠方式、环境舒适度。

要找出是哪个环节让他睡得不够好,我们采用一晚换一个变量,其余变量不变的方式。

序号

变量

结果

Day1

吃饱程度:喂得更久更饱

吐得厉害,毫无睡意,失败

Day2

睡眠方式:安抚奶嘴

几分钟就吐出来,失败

Day3

环境舒适度:洗屁股后才喂奶

醒的很少,4~5 次变成 2~3 次,成功

经过控制变量法,我们知道是睡觉时环境舒适度不够引起的起床频繁,于是后续都在睡前把屁股洗干净、尿布换好,慢慢变成一晚只醒来一次的天使宝宝,测试通过。

2.新手上路 — 颠覆三观的 20h 理论

世上有一个职业永远不用实习,在你不一定准备好的情况下就得上岗,那就是新手父母。

到底月子要怎么坐?该怎么抱孩子?怎么给孩子洗澡?好焦虑。

这个时候,不妨试一下 20h 理论。

  • 20 小时理论 — 快速上手一门技能

掌握一门技能需要多久呢?

答案是,20 小时就够了。人的学习先后快慢,20 小时性价比最高,足够使你上手一门技能。

10000 小时理论其实是你需要花 10000 小时才能做到极致,做到行业顶尖,后来却被理解成需要花 10000 小时去学习。而学习时间和学习效果有边际效用递减的关系。Josh 通过实践,发现:你想学什么技能,只要你有规划,用心思的投入 20 小时左右去学,你会被自己的表现震惊的。

20 小时让你快速上手新手父母要做的事,怎么进行?

  1. 抓住最重要的内容来学习:哺乳、坐月子饮食、抱孩子姿势、给娃洗澡的方法。
  2. 专业书籍只看要学的那部分内容;
  3. 排除干扰,精心学习:每天保证 2 小时认真学习和练习,累计 20 小时,足以掌握一门技能。

就这样,我慢慢从新手变成了可以一个人搞定娃的超人妈咪,还可以带娃之余顺便做家务看电视。

四.结语

上述就是我从怀孕到产检大概一年半时间里的所思所实践,未来学习的路还很漫长,我也非常享受当下的感觉。万事都有规律可循,我很享受工作所用的思路用于生活的方法挖掘。而且我也明白,方法不是人人适用,但是思路可以互相交流参考,于是记录下这篇不像孕期攻略的算法应用攻略,望君笑纳。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

陈湘玲的专栏

1 篇文章3 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏专知

基于TensorFlow的机器学习速成课程25讲视频全集(10-12讲)

【导读】前些日子,大家都知道,Google 上线了基于 TensorFlow 的机器学习速成课程,它包含 40 多项练习、25 节课程以及 15 个小时的紧凑学...

3548
来自专栏AI派

近邻推荐之 Slope One 算法

使用 Slope One 算法可以避免上面的问题,Slope One 算法专门针对评分矩阵进行计算,不适用于行为矩阵。它不是计算物品之间的相似度,而是计算物品之...

3679
来自专栏机器之心

入门 | 将应用机器学习转化为求解搜索问题

28510
来自专栏应兆康的专栏

26. 训练集误差分析

1505
来自专栏智能算法

数据+进化算法=数据驱动的进化优化?进化算法PK数学优化

数据驱动的进化优化是什么,仅仅就是数据+优化算法吗?数据驱动的进化优化适用于哪些应用场景?传统的数学优化方法是否迎来了新一轮的挑战。本文将为您深入浅出的解答以上...

1033
来自专栏程序你好

十大最受欢迎的人工智能模型

企业面临的问题种类繁多,用于解决这些问题的ML模型种类繁多,因为有些算法比其他算法更擅长处理特定类型的问题。因此,我们需要清楚地了解每种ML模型的优点,今天我们...

393
来自专栏有趣的Python

0-机器学习启蒙-导学机器学习-导学

机器学习-导学 机器学习工资高。 教学方法: 理论结合实际。 回归模型 分类模型 聚类模型 推荐系统 在大家把理论了解清楚之后, 对于每一个模块进行实践。 ...

2606
来自专栏应兆康的专栏

26. 训练集误差分析

你的算法必须在训练集上表现得很好,才能期望它在开发集和测试集上能够有着良好的表现。除了先前提到的用于处理高偏差的技术外,我通常也会在训练数据上进行误差分析,处理...

2947
来自专栏新智元

以色列神秘AI研究力量:深度学习的四大失败

【新智元导读】深度学习力量强大,但无论是理论研究者还是实际从业者,了解深度学习的局限也是十分重要的。耶路撒冷希伯来大学的一组研究人员,其中有两位任职于 Mobi...

4168
来自专栏鸿的学习笔记

Yoshua Bengio关于深度学习结构的综述

深度学习方法旨在学习特征层次,其具有由较低层特征的组合形成的较高层级的特征。在多个抽象级别自动学习特征允许系统去学习将输入直接从数据映射到输出的复杂函数,而不完...

531

扫码关注云+社区