2008年发表的文章(162)

真正的转折点是1994年

一年前,我曾思考一个问题:为何这几年的一连串恶政——打击房地产市场、取消出口退税、新劳动法……——没有遭到地方政府有力抵制?他们很明显是这些政策的受害者。要知道,就在不久之前,他们的抵御能力还是很强的。

我得到的答案是:这一切都开始于1994年,尽管当时的第二轮改革开放正进行的如火如荼,但正是那一年的税制与财政改革埋下了祸根,现在,我更加确信当初的判断:税制与财政改革、银行公司化、央企集中化重组,老朱的这三项伟业极大强化了中央政府,造就了其对地方政府的压倒性权力,今天,任何政策都不再会遇到有效抵抗了。当时我说

……看来朱RJ确实太能干了,埋下两个大祸根:金融集中和国税系统,这对别人是不可能的任务。 如今H-W打打杀杀,牛气的很,手段却是老朱留下的,十几亿人将长期为此受苦。……坏就坏在“经济上较有头脑”,“每遇事束手无策”才好。……说过了,没有老朱留下的九齿耙,折腾不出这么多玩意儿。能干什么有时比想干什么更重要。……

刚刚看到Hugo Restall在WSJ上的文章<中国改革路漫漫>,对始于90年代后期的大逆转作出了准确的评估,一个老外对中国的认识达到这个程度,不容易:

……不幸的是,这段高速增长时期即将结束(more...)

标签: | | |
519

一年前,我曾思考一个问题:为何这几年的一连串恶政——打击房地产市场、取消出口退税、新劳动法……——没有遭到地方政府有力抵制?他们很明显是这些政策的受害者。要知道,就在不久之前,他们的抵御能力还是很强的。

我得到的答案是:这一切都开始于1994年,尽管当时的第二轮改革开放正进行的如火如荼,但正是那一年的税制与财政改革埋下了祸根,现在,我更加确信当初的判断:税制与财政改革、银行公司化、央企集中化重组,老朱的这三项伟业极大强化了中央政府,造就了其对地方政府的压倒性权力,今天,任何政策都不再会遇到有效抵抗了。当时我说

……看来朱RJ确实太能干了,埋下两个大祸根:金融集中和国税系统,这对别人是不可能的任务。 如今H-W打打杀杀,牛气的很,手段却是老朱留下的,十几亿人将长期为此受苦。……坏就坏在“经济上较有头脑”,“每遇事束手无策”才好。……说过了,没有老朱留下的九齿耙,折腾不出这么多玩意儿。能干什么有时比想干什么更重要。……

刚刚看到Hugo Restall在WSJ上的文章<中国改革路漫漫>,对始于90年代后期的大逆转作出了准确的评估,一个老外对中国的认识达到这个程度,不容易:

……不幸的是,这段高速增长时期即将结束,而全球金融危机并不是唯一的原因。中国改革的钟摆目前再次摆回到了意识形态竞争和大政府政策一方。由于中国仍然没有就自由市场改革的价值达成确切共识,那些由社会主义转向资本主义的人士正转变为欧洲风格的社会民主党人。

在上世纪九十年代末,官僚主义开始重建他们的权威。北京确定了通过改进税收体系,带动政府收入占GDP的比例重新达到20%。去年,政府收入占GDP的比例达到了20.8%,增幅高达32.4%,远远超过了中国经济11.4%的增速。

政府支出也在迅猛增加,这是意识形态重新转向中央集权经济体制的标志之一。政府领导人将自己描述成化解所有问题的答案,传达出他们愿意动用公共资源帮助那些被新经济繁荣所抛弃的人群,而不是打算发展新企业创造就业机会。虽然与欧洲国家相比,中国的社会保障体系仍然规模较小,不过正在迅速发展。考虑到中国仍然是一个贫穷国家,人口正在迅速老龄化,这可能难以维系。

与此同时,在经历了一段以一个发展中国家罕见的程度欢迎外国贸易与投资的时期后,北京正悄悄改变政策,对海外产品和投资设置一些非关税壁垒。中国政府力促缔造新的龙头企业,它们通过各种所有权结构和政府有着千丝万缕的联系,享受着国有银行提供的慷慨融资。中国新制定的劳动法也远远超过了基本的;劳动保护范围,鼓励工人组织工会,与管理层进行抗争。

所有这些都减少了真正私有部门的机会,而这个部门一直是中国经济飞速增长的推动力。随着增长放缓,有政府背景的官员管理者独享最大的发展机会,社会不平等和不满也应运而生。如果这促使政府进一步加大投入收买异己,那么经济改革的良性循环就可能演变为政府加大干预的恶性循环。

在政治领域,政府和商业精英的密切关系意味着对共产党的任何新兴反对力量都可能是反商界的。实际上我们已经看到了这方面的证据:在知识界,一个民族主义的运动正鼓吹政府加强对经济的控制,这个所谓的“新左翼”思潮是当下最热门的势头。

过去一年,互联网最终开始展现出成为公民共享信息手段的潜力,民众通过网络互相了解政府腐败和滥用职权的信息,并组织起来寻求补救。但与此同时,网络也成为“愤青”的释放渠道,这些20多岁持民族主义思想的年轻人支持一个更为强势的中央政府。……

 

饭文#72: 马多夫案的输家

(按:写完后又看到些新细节,与我原有印象略有偏差,请参阅我的其他帖子)

马多夫案的输家
辉格
2008年12月17日

随着马多夫案的细节陆续披露,这一庞氏骗局的损害范围和规模逐渐清楚,一夜之间,许多富裕家庭变成无产者,许多慈善基金就此关门,许多基金的基金面临赎回潮和清盘的命运。那么,除了这些直接受害的投资者之外,这一惊天巨案中,还有哪些输家呢?

当我最初听说这一事件时,我的第一反应是,如果连这样的公司——具有几十年历史、华尔街重要做市商、纳斯达克奠基人之(more...)

标签: | | | | |
520

(按:写完后又看到些新细节,与我原有印象略有偏差,请参阅我的其他帖子)

马多夫案的输家
辉格
2008年12月17日

随着马多夫案的细节陆续披露,这一庞氏骗局的损害范围和规模逐渐清楚,一夜之间,许多富裕家庭变成无产者,许多慈善基金就此关门,许多基金的基金面临赎回潮和清盘的命运。那么,除了这些直接受害的投资者之外,这一惊天巨案中,还有哪些输家呢?

当我最初听说这一事件时,我的第一反应是,如果连这样的公司——具有几十年历史、华尔街重要做市商、纳斯达克奠基人之一——都靠不住,那还有谁可以信赖?他的对冲基金同行们,如何再向其投资人说明:“我们不会这样”?于是合乎逻辑的预期是:会不会有一场可怕的大规模基金赎回风潮?

但是看了案件的更多细节之后,我的想法有所改变。不论其他环节如何复杂蹊跷,马多夫骗局得以成立的一个关键条件是,缺乏对投资者的透明度,即,投资者无法核实马多夫所声称的那些证券交易是否真的发生了。事实上,据第三方的分析,这些交易大部分没有发生,这些分析还指出,马多夫根本不可能遵循了他所声称的投资策略,即在collar期权的风险限制下,投资标普100中的30多个股票,并定期清仓转为国债;有分析者模拟了这一策略,发现它不可能获得马多夫所宣称并按此向投资者支付的每月1-1.2%的高额收益,并且,这一策略所要求的期权头寸远远高出实际交易记录所显示的数字。

作为一个封闭式的私募基金,它没有义务对公众披露其交易记录,它也可以采用对投资者保密的政策,不汇报其交易细节和投资组合,在我看来,这些都没问题;但它必须用某种方式让投资者相信,他们的钱的确还在账户上,无论是以股票、债券或现金的形式。对于基金管理者,这一点不难做到,聘用外部资产托管人,或者在其他券商那里开设账户进行交易(马多夫既是基金管理人,又是券商,这恐怕是骗局关键中的关键),或者聘用大会计行定期出具报表,都很容易做到。

像马多夫这样完全黑暗的暗箱操作,并非对冲基金的常见做法,这样看来,他的同行们倒是比较容易撇清,他们可以向他们的投资人解释:马多夫这样的事情,我们是没有能力做到的,除非我们与第三方托管人或会计行串谋。同时,他们可以立即向投资人出具第三方的凭据或报表,来消除他们的担忧。这一点,我相信他们能做到。

相反,难以撇清责任的,是那些直接或间接投资于马多夫基金的机构投资者,和那些向其客户或明示或暗示的推荐了该基金的资产管理者、私人银行和理财顾问。这些机构,不仅遭受了直接的投资损失,承担了其推荐所带来的法律责任,更致命的,是丧失了其在审慎、洞察和远见方面的声誉,在这一点上,他们没有任何辩解的余地。从上述第三方分析可以看出,马多夫的骗局并非复杂难辨,其疑点突出而明显,有关分析和质疑并非案发后才出现,十几年来一直不断有人提出;特别是所宣称的稳健策略和几乎恒定的高收益之间的矛盾,以及定期清仓的诡异做法,是一望便知的马脚。

个人投资者或许甘愿冒风险而接受纯暗箱操作,或者听信马多夫有内幕消息的传闻,或者指望骗局崩盘之前自己已赚够了分红,这还可以理解;但对于服务于投资者的机构,抱此类幻想便是极其荒谬而不可原谅的,至少对于涉入此事的交易员和理财顾问们,他们的职业生涯已经终结,他们应被列入黑名单,而他们所在机构也应被打上一个重重的耻辱标记。

如果你对面的人语速很快,而你又听不大懂

那你就要赶紧捂紧钱包,至少James Hedges IV这么认为

在赫奇斯看来,原因很简单。他表示,让马多夫管理自身资产“无法通过机构的质量尽职审查过程。因为你才过到长达30页的尽职审查调查表的第2页,你就已经发现了8个警报,然后你会对自己说‘我不会投资这个。’”总之,赫奇斯认为,任何真正做了准备工作的老练的机构都应该看到了警报信号。

赫奇斯曾有机会近距离看到这些信号:在1997年,他正为财产管理巨头Bessemer Trust提供咨询,为讨论在马多夫的公司投资之事宜,赫奇斯曾拜访伯纳德•马多夫。

赫奇斯对马多夫的评价是:“我发现他同许多交易员风格相似:(more...)

标签:
521

那你就要赶紧捂紧钱包,至少James Hedges IV这么认为

在赫奇斯看来,原因很简单。他表示,让马多夫管理自身资产“无法通过机构的质量尽职审查过程。因为你才过到长达30页的尽职审查调查表的第2页,你就已经发现了8个警报,然后你会对自己说‘我不会投资这个。’”总之,赫奇斯认为,任何真正做了准备工作的老练的机构都应该看到了警报信号。

赫奇斯曾有机会近距离看到这些信号:在1997年,他正为财产管理巨头Bessemer Trust提供咨询,为讨论在马多夫的公司投资之事宜,赫奇斯曾拜访伯纳德•马多夫。

赫奇斯对马多夫的评价是:“我发现他同许多交易员风格相似:语速很快、容易分心、不大显眼。”但据赫奇斯说,在他们两个小时的会面中,“危险信号一个接着一个。”

首先,赫奇斯无法领会马多夫的投资策略。他说道:“我一直跟他说,‘你得详细向我解释,就当我完全是个门外汉’。”但完全没用。

有道理。

基金调查专家2007年初对Madoff的研究

问题关键是Madoff同时扮演了证券交易经纪人(broker)和基金管理人两个角色。

Madoff的确请了大会计行来为基金做审计,但这些审计师审计基金时,用的是经纪人的报告,而对经纪人的审计,Madoff请的是只有3个人(包括秘书和挂名老头)和234平方呎办公室的小行。

以下摘自Bloomberg前天的专访

……
DODDS: What was tip #1?

VOSS: Tip #1 is – we’re using the word hedge funds, but these really weren’t hedge funds. Typically investor money entered Madoff Securities through feeder funds, which were from a legal perspective hedge funds, but were managed by marketing firms and set up solely to raise assets that would be funneled into Madoff Securities.

DODDS: And what made you think something was fishy?

VOSS: Well, to start with, the feeder funds were suspicious. They seemed to serve no purpose at all. Number two, the strategy that was marketed by the managers of these feeder funds as the strategy that Madoff was doing, really made no sense. It was called split-strike conversion, and when(more...)

标签:
522

问题关键是Madoff同时扮演了证券交易经纪人(broker)和基金管理人两个角色。

Madoff的确请了大会计行来为基金做审计,但这些审计师审计基金时,用的是经纪人的报告,而对经纪人的审计,Madoff请的是只有3个人(包括秘书和挂名老头)和234平方呎办公室的小行。

以下摘自Bloomberg前天的专访

……
DODDS: What was tip #1?

VOSS: Tip #1 is - we’re using the word hedge funds, but these really weren’t hedge funds. Typically investor money entered Madoff Securities through feeder funds, which were from a legal perspective hedge funds, but were managed by marketing firms and set up solely to raise assets that would be funneled into Madoff Securities.

DODDS: And what made you think something was fishy?

VOSS: Well, to start with, the feeder funds were suspicious. They seemed to serve no purpose at all. Number two, the strategy that was marketed by the managers of these feeder funds as the strategy that Madoff was doing, really made no sense. It was called split-strike conversion, and when you run the numbers, it produces much more volatile and random returns than the returns advertised by the feeder funds.

DODDS: So, the promise the funds were making didn’t match reality to you?

VOSS: Yes, and I think most investors without due diligence resources should’ve been aware of that going in. Number two is the size of the money in all these feeder funds, we estimate at a time was $15 billion.

The markets that Madoff and the feeder fund managers allege were being traded revolved around S&P 100 options. And S&P 100 options are not liquid and could not take nearly the volume reporting to be executed by these people.

DODDS: Now, was this available in public records - how did you find this out?

VOSS: It takes digging, right. A little bit of the art of my business is you don’t tip your hand, you ask a lot of questions, you do your work, and you keep digging. And take everything you hear with a grain of salt and keep going.

DODDS: Now were there any physical clues here. Did you go out and look at anybody’s offices?

VOSS: Yes, I mean for us, and I’ll get into the digging, most of these feeder funds were audited by very well-respected major audit firms. And the problem was these audit firms as is industry practice and necessity, rely upon brokerage statements from executing brokers.

And the problem with the feeder funds is 100 percent of the assets was with one privately-held broker. So we said to ourselves, we’ll let’s not worry about the auditor of the feeder funds, but let’s look at who audits this broker.

So, we did some digging, including at one point staking the offices in Rockland County, and what was initially described to us as a mid-sized New York-based audit firm, turned out to be a firm with, we believe, office space of 13x18 feet; three employees, one of which was 78-years-old and seemed to live in Florida, the other of which was a secretary, the third of which was a gentleman my age who is a practicing CPA. But, from our perspective there is no way a firm of this size could audit a firm of Madoff Securities size.
……

Madoff把他整个家族都拖了进去

两个儿子,兄弟,侄女,外甥……,这事儿可真蹊跷,有点看不懂。

见Wikipedia:Bernard L. Madoff

……He brought several relatives into his business. His brother, Peter, was a senior managing director. Both of Madoff’s(more...)

标签:
523

两个儿子,兄弟,侄女,外甥……,这事儿可真蹊跷,有点看不懂。

见Wikipedia:Bernard L. Madoff

......He brought several relatives into his business. His brother, Peter, was a senior managing director. Both of Madoff’s sons, Mark and Andrew, joined the team after finishing their educations. Charles Weiner, a son of Mr. Madoff’s sister, also joined the firm, and Peter Madoff’s daughter, Shana, took a job with the company as a lawyer.

加法虫的源代码

找了一下,源代码还在,我用Delphi5写的,因为用了几个第三方库和我自己的库,现在没法编译,不过真有兴趣的话,很容易照着用其他语言改写一下,很小,也就1000多行代码。

我把“个体”类(TIndividual)的发育、表达、遭遇等方法都声明为抽象或虚拟方法,对价值函数的调用也是通过指针进行,所以,你只要从TIndividual派生一个子类(比如我的虫子的声明:TEvJumble = class(TEvIndividual)),并给它一个价值函数,再配置一下进化环境文件,即可开始孵育你自己的虫子了,呵呵。

下面是最核心的一段代码,实现了“种群”类的“世代交替”:

procedure TEvPopulus.Digenesize;
var
  i, j, n, nPopu, nBorn, nDead: Integer;
  fFav, fAch, fRep, fSur, fElm, fAge, fFert, fR: Double;
  P, F: TEvIndividual;
  lBabies: TEvIndividuals;
  L: TStringList;
  FF: TIniFile;
begin
  FF := TIniFile.Create(FileName);

  fFav := Individuals[0].Favorable;
  Individuals.SortByFavorable;
  fAch := Individuals[0].Favorable;
  if fAch > fFav * 1.01 then
    FF.WriteString(‘Specimens’, IntToStrN(LineageNo, 6),
        Individuals[0].Genes[0].AsHex + ‘,’
      + FormatFloat(‘0.000000′, fAch));

  nPopu := Individuals.Count;
  fFav := 0;
  i := 0;
  while (i < nPopu) and (Individuals[i].Experience > 0) do
  begin
    fFav := fFav + Individuals[i].Favorable;
    Inc(i);
  end;
  if i > 0 then fFav := fFav / i;

  fElm := Max(0.0, (0.00001 + nPopu – Population) / (nPopu * 1.0));

  fFert := Fertility * Min(3, Population(more...)

标签:
524

找了一下,源代码还在,我用Delphi5写的,因为用了几个第三方库和我自己的库,现在没法编译,不过真有兴趣的话,很容易照着用其他语言改写一下,很小,也就1000多行代码。

我把“个体”类(TIndividual)的发育、表达、遭遇等方法都声明为抽象或虚拟方法,对价值函数的调用也是通过指针进行,所以,你只要从TIndividual派生一个子类(比如我的虫子的声明:TEvJumble = class(TEvIndividual)),并给它一个价值函数,再配置一下进化环境文件,即可开始孵育你自己的虫子了,呵呵。

下面是最核心的一段代码,实现了“种群”类的“世代交替”:

procedure TEvPopulus.Digenesize;
var
  i, j, n, nPopu, nBorn, nDead: Integer;
  fFav, fAch, fRep, fSur, fElm, fAge, fFert, fR: Double;
  P, F: TEvIndividual;
  lBabies: TEvIndividuals;
  L: TStringList;
  FF: TIniFile;
begin
  FF := TIniFile.Create(FileName);

  fFav := Individuals[0].Favorable;
  Individuals.SortByFavorable;
  fAch := Individuals[0].Favorable;
  if fAch > fFav * 1.01 then
    FF.WriteString('Specimens', IntToStrN(LineageNo, 6),
        Individuals[0].Genes[0].AsHex + ','
      + FormatFloat('0.000000', fAch));

  nPopu := Individuals.Count;
  fFav := 0;
  i := 0;
  while (i < nPopu) and (Individuals[i].Experience > 0) do
  begin
    fFav := fFav + Individuals[i].Favorable;
    Inc(i);
  end;
  if i > 0 then fFav := fFav / i;

  fElm := Max(0.0, (0.00001 + nPopu - Population) / (nPopu * 1.0));

  fFert := Fertility * Min(3, Population / nPopu);

  lBabies := TEvIndividuals.Create(False);
  L := TStringList.Create;
  L.Sorted := True;
  L.Duplicates := dupIgnore;
  fAch := 0; fAge := 0;
  nDead := 0;
  i := 0;
  while i < Individuals.Count do
  begin
    P := Individuals[i];
    L.Add(P.Genes[0].AsHex);
    fAch := fAch + P.Favorable;
    fAge := fAge + P.Experience;
    if fFav > 0 then
    begin
      fRep := Power(P.Favorable / fFav, EOR);
      fSur := Power(P.Favorable / fFav, EOS);
    end else
    begin
      fRep := 1;
      fSur := 1;
    end;
    P.Reproductivity := fRep;
    P.Survivability  := fSur;

    fRep := fFert * fRep;
    n := Trunc(fRep);
    fR := Random;
    if fR <= fRep - n then
      Inc(n);
    for j := 0 to n - 1 do
    begin
      fR := Random;
      F := IndividualClass.Create;
      F.Inherit(P, fR <= MutateRate);
      F.Develop;
      lBabies.Add(F);
    end;

    fR := Random;
    if fR * fSur <= fElm then
    begin
      Individuals.Delete(i);
      Inc(nDead);
    end else
      Inc(i);
  end;

  nBorn := lBabies.Count;
  for i := 0 to nBorn - 1 do
    Individuals.Add(lBabies[i]);

  lBabies.Free;

  fAge := fAge / nPopu;
  Achievement := fAch / nPopu;
  Variety := L.Count / nPopu;

  FF.WriteString('Progress', IntToStrN(LineageNo, 6),
      FormatFloat('0.000000', Achievement) + ','
    + FormatFloat('0.000000', Individuals[0].Favorable) + ','
    + FormatFloat('0.0000', Variety) + ','
    + IntToStrN(nBorn, 6) + ','
    + IntToStrN(nDead, 6) + ','
    + FormatFloat('#0.0', fAge));
  FF.Free;

  LineageNo := LineageNo + 1;

  L.Free;
end;

 

 

饭文#70: 粮改的政策目标分析

(按:我不赞成政府对粮食做任何事,这里说的,是假设人们都同意,政府粮食政策所宣称的目标是可取的,那么在市场化条件下,达成这些目标的合理方式是什么)

粮改的政策目标分析
辉格
2008年12月15日

近日,关于产粮大省吉林加速推进国有粮食企业改制的报道,再次引起了人们对粮食体制改革的关注。正如吉林有关政府人员所承认的,加速改制,是国有粮企所面临的严重困境下,无奈的选择。实际上,2004年的全面市场化改革启动之后,基层国有粮企已经失去了其原有的盈利模式和生存基础,改制是必然的选择,(more...)

标签: | |
525

(按:我不赞成政府对粮食做任何事,这里说的,是假设人们都同意,政府粮食政策所宣称的目标是可取的,那么在市场化条件下,达成这些目标的合理方式是什么)

粮改的政策目标分析
辉格
2008年12月15日

近日,关于产粮大省吉林加速推进国有粮食企业改制的报道,再次引起了人们对粮食体制改革的关注。正如吉林有关政府人员所承认的,加速改制,是国有粮企所面临的严重困境下,无奈的选择。实际上,2004年的全面市场化改革启动之后,基层国有粮企已经失去了其原有的盈利模式和生存基础,改制是必然的选择,也是市场化改革的自然延续。同样的变化已经或即将在其他省份发生,只是各省所面临的困境和政策推进速度与深度有所不同。通过深化改革而不是走回头路,来化解改革进程中所面临的问题和困境,是正确的做法,值得赞赏。

粮食体制改革,始于1985年取消统购统销,经过1988年取消粮票,1993年取消购粮本,实现了零售环节的市场化,然后在1998年启动了以国企主导和高度管制(所谓“四不一保”)为特征的半市场化改革,最终在2004年启动了全面市场化改革。应该说,目前尚处于2004年改革的推进过程之中,由于这一轮改革涉及到大量地方国企的改制、功能转变和人员安置,遭遇困难和阻力是难免的。

与粮食生产和流通体制改革同时推动的,也是作为该项改革的重要目标的,是政府的粮食安全政策。过去,政府通过国有化和统购统销来控制粮食,现在既然全面市场化的方向已定,问题就转变为:如何在市场化的条件下,确定和实施粮食安全政策。所谓粮食安全,是指即使在灾难、贸易封锁和战争等极端条件下,仍可确保国内市场粮食供给基本充足。从历来的政策宣示中不难看出,政府已将这一大目标分解为这样几个子目标:任何时候,境内都有足够多(比如半年)粮食存量;在短期,种植者不会受过低粮食价格之伤害,消费者不会因过高粮食价格而造成生活困难;在长期,种植者有足够激励维持现有种植总面积,以便维持现有的粮食自给率。

为实现上述目标,政府当前使用了三个政策工具:供方补贴,国家储备和土地用途管制,具体是,以补贴价限量收购种植者的粮食产出,建立以政策性国企为主体的粮食储备体系,由国土局管制耕地转为其他用途。这一政策组合中,政府主要扮演了业主、经营者和管制者的角色,相比计划体制下,政府直接扮演生产者和销售商的角色,有了很大进步;但这仍然不是一个真正面向市场化的政策组合。经验表明,市场化条件下,政府实施公共政策的同时,若要保持市场按其自身的逻辑运行,发挥其供需调剂和资源配置功能,最佳的选择是,政府以市场平等参与者的身份从事买卖,而不是用干预和管制去制造扭曲和价格信号传导障碍。

分析上述经过分解的目标可以发现,关键的变量是价格和存量,政策目标实际上是让这个变量始终处于一个合适的区间内。在充分发育的市场里,要做到这一点,有比现在更简便清晰、更市场化的工具。要维持粮食价格区间,政府可以在公开市场(现货和期货市场)上进行买卖,大宗市场上的标准合约交易,在效果验证、信息透明度和实施费用上,都比直接补贴种植者好得多,大宗现货和期货市场的即期和远期价格信号,可以为种植者提供最有效的激励和指导;因此,下一步改革的重点,应放在鼓励和培育基于标准合约的大宗市场。

要维持粮食存量区间,政府可以建立储备体系,但不必直接拥有和管理粮库和库存粮。一方面,政府可以保有一个覆盖未来若干年并滚动更新的期货合约序列,来确保其未来进行公开市场操作的能力;另一方面,可以建立一个境内粮食库存监测系统,并结合合约交易来确保境内库存量维持在目标区间内;政府可以按库存量向粮食企业提供优惠信贷,换取其接受库存监测和定期抽查,这样做比直接拥有和管理粮库,效率更高;这样的储备体系是自动滚动更新的,避免了国有储备粮的损耗。作为头号粮食生产国的美国,建立了庞大的联邦粮食储备体系,但联邦政府并不拥有任何粮库。实际上,只要境内有足够的粮食存量,谁拥有它并不重要,因为政府并未放弃在紧急情况下征用粮食用于救灾和战争的权力。

拉卡托斯《科学研究纲领方法论》

若以奥数成绩衡量,中国学生所受的科学教育不可谓差,而美国学生可能要倒数了,但我的判断却仍然是:中国的科学教育极其失败,而美国的科学教育仍属一流。

差别在于哲学。科学是一套独特的思考、说话和交流方式,奥数考100分,并不意味着你已经学会用科学的方法来思考和说话了。

在英美科学家的著作里,你常常可以看到大段大段文字阐述他们的哲学和方法论基础,波普、卡尔纳普、库恩的名字和术语随处可见,而在中国学者的作品里,你最多只能听到一些前罗素哲学家的警句妙言。(more...)

标签: | |
526

若以奥数成绩衡量,中国学生所受的科学教育不可谓差,而美国学生可能要倒数了,但我的判断却仍然是:中国的科学教育极其失败,而美国的科学教育仍属一流。

差别在于哲学。科学是一套独特的思考、说话和交流方式,奥数考100分,并不意味着你已经学会用科学的方法来思考和说话了。

在英美科学家的著作里,你常常可以看到大段大段文字阐述他们的哲学和方法论基础,波普、卡尔纳普、库恩的名字和术语随处可见,而在中国学者的作品里,你最多只能听到一些前罗素哲学家的警句妙言。

对于没有起码了解科学方法论的人来说,阅读科学新闻和看明星八卦没有区别,除了满足一点好奇心和获得一点遐想空间之外,我看不出对改进他们的思考有任何益处;我经常在朋友之间宣扬的一个观点是:对大众来说,科学就是另一种迷信,也只能是一种迷信。

所以,至少在中国,最需要普及的,是科学哲学。

如果你有足够的时间,我会贪婪凶恶的推荐从休谟、罗素、维特根斯坦、波普、库恩、拉卡托斯直到奎因,但很少人有这样的时间和耐心,所以,我建议,如果只打算读一本科学哲学著作,就读这本吧。

我如何孵育我的加法虫

(按:这是我三年前闲得发慌,业余学习进化生物学时,所作的课后练习,拿出来献丑,权当是山寨版进化算法的科普作品吧,呵呵)

我如何孵育我的加法虫
辉格
2005年08月05日

在阅读Richard Dawkins的The Blind Watchmaker时,我产生了一个冲动,想写个程序来孵育出某个有趣的东西。我考虑了几种东西,包括诸如善于从井里粘食蚂蚁的长舌虫、会学舌的鹦鹉、会啃文字的书蠹,等等。但是,在评估了这些目标的难度,和这种难度与我的能力之间的差距之后,我选择了一个简单的电子产品——加法虫——一种会做加法的虫子,作为我的指望能勉强交差,同时又能满足我的好奇心的课后作业。

所谓加法器,就是一种具有这样能力的装置:当它获得两个输入的整数后,便输出另一个整数,其值等于前两个整数之和。为了简化问题,输入/输出的整数的长度需要有所限制,比如,一个32位加法器能进行输出值介于0~4294967295(或-2147483648~2147483647,以下讨论都不考虑负数)的加法运算,而一个8位加法器只能进行输出值介于0~255的加法运算。

正如往常那样,我希望最大限度的偷懒,经过斟酌,我选择了3位加法器作为我的孵育目标。为什么不干脆选择1位加法器呢?哈哈,本来我是想这么干,但我很快发现(料想得到,如果你刚好是个数字电路这门课考得不错的工科生,一定在暗自窃笑我的愚笨)1位加法器实际上就是一个异或门(XOR gate),而它和其它三种门电路——正如我将要说明的,恰好是我打算用作我的孵育工作的原料。

于是我转向2位加法器,也就是输出数有两个比特位,但这样一来,为了不让结果“溢出”,输入数就只能有1个比特位了,我担心这样是否过于简单,以至于我准备使用的那些原料稍一凑巧就能组合出我想得到来的东西,从而使我精心策划的孵育行动显得平淡无奇。这样,我最终选定了3位加法器,我相信它已足够有趣,因为很容易发现(因为连我也很快发现了):这种小的加法器经过简单的重复串接,可以组成任意位数的大的加法器;并且我猜想它也将足够复杂,不至于被我的原料们轻易凑巧拼出来。

我就这样开始干起来。

首先,我假定存在这样一种虫子,它的某一段(如下图,不妨叫它尾巴)的两侧各有4个点,我们称上面的为输入点,下面的称为输出点(就我们的饲养目的而言,只需要三个输出点,我放上第四个只不过为了满足我对对称性的偏好,今后当我们评估这些饲养产品的性能时,自然可以对这个点的状态不予考虑)。

image001

在上下两层之间,有着一些特别的“丫”状颗粒(如下图,你可以叫它丫头或者三毛,随你喜欢),它们在虫子生长过程中,可能会从它们的两个“上枝丫”上长出一根枝条连接到其他丫头的“下枝丫”或者某个输入点上,至于某个丫头的某个上枝丫是否长出枝条以及连到哪个点上,由基因G决定。

image002

和丫头们一样,那些输出点也会长出枝条(不过每个点只有一个)连接到某个丫头的下枝丫或者某个输入点上,至于与谁连接,同样由基因G决定。为了方便,我决定在每个虫子尾巴里放进28个丫头。

输入点上时常会受到一些刺激(比如光照),当某个点受到刺激时,我们称其状态为“1”,未受刺激时则称为“0”;类似地,每个丫头的下枝丫也有两种可能状态(0和1),它取决于其两个上枝丫所连接点的状态,决定的方法由丫头本身的性质而定。有四种丫头,对应四种决定方法,分别称为:“非”、“与”、“或”、“异”(我想不需要解释他们的含义了,只有一点需要指出,“非”丫头的下枝丫状态只与其左上枝丫所连接点的状态有关,其右上枝丫可视若无物)。至于一个丫头到底长成哪种类型,也由基因G决定。

输出点总是黑色的(称为0),除非它们长出了枝条连接到某个状态为1的输入点或下枝丫上,这时它是白色的(称为1)。

现在来看看我们的基因G。它存储了356bit的信息,其中56个将决定那28个丫头的类型(每个丫头需要两个,因为一共有四种类型),另外300个将决定60个点(28个丫头的56个上枝丫加上4个输出点)是否长出枝条并伸向何方,每5个bit决定1个点,5bit组成一个0~31的整数,其中0表示“没长枝条”,其余分别表示长了枝条并指向第i个点(若i<=4,它是第i个是输入点,若i>4则是第i-4个是丫头的下枝丫(你或许已经发现,这样第28个丫头永远都不会被指到,因为我数错了数,把那个0给漏了,哈哈!不过这无关紧要,因为我是饲养员,不是电子工程师。在我这个老大粗的眼里,27个和28个丫头一样——看起来差不多够用了)。

在开始我们的饲养工作之前(是不是等得不耐烦了?),还有几桩小事要做。

首先,我的虫群每隔一段时间有一个繁殖季节(实际上,隔多久取决于我的PC的性能和我作为程序员的水平,哈哈),两个繁殖季节之间,他们每个将遭遇N次生活的考验(我把这个N叫做考验频率)。所谓一次考验,抽象地说,就是这样一个过程:他接受一个输入,并形成一个反应(包括毫无反应的反应),然后他的反应和输入之间的关系将被评估,评估的结果可能导致两种影响:1)可能影响他在下一个繁殖季节到来之前继续生存的机会;2)可能影响他在下一个繁殖季节中的生殖能力。(当然,实际上还存在着对进化过程起作用的第三种影响,即他在其后代或血缘近亲需要其帮助的期间继续提供帮助的能力,但在这里我暂时将其忽略。)举个例子,对于(more...)

标签:
527

(按:这是我三年前闲得发慌,业余学习进化生物学时,所作的课后练习,拿出来献丑,权当是山寨版进化算法的科普作品吧,呵呵)

我如何孵育我的加法虫
辉格
2005年08月05日

在阅读Richard Dawkins的The Blind Watchmaker时,我产生了一个冲动,想写个程序来孵育出某个有趣的东西。我考虑了几种东西,包括诸如善于从井里粘食蚂蚁的长舌虫、会学舌的鹦鹉、会啃文字的书蠹,等等。但是,在评估了这些目标的难度,和这种难度与我的能力之间的差距之后,我选择了一个简单的电子产品——加法虫——一种会做加法的虫子,作为我的指望能勉强交差,同时又能满足我的好奇心的课后作业。

所谓加法器,就是一种具有这样能力的装置:当它获得两个输入的整数后,便输出另一个整数,其值等于前两个整数之和。为了简化问题,输入/输出的整数的长度需要有所限制,比如,一个32位加法器能进行输出值介于0~4294967295(或-2147483648~2147483647,以下讨论都不考虑负数)的加法运算,而一个8位加法器只能进行输出值介于0~255的加法运算。

正如往常那样,我希望最大限度的偷懒,经过斟酌,我选择了3位加法器作为我的孵育目标。为什么不干脆选择1位加法器呢?哈哈,本来我是想这么干,但我很快发现(料想得到,如果你刚好是个数字电路这门课考得不错的工科生,一定在暗自窃笑我的愚笨)1位加法器实际上就是一个异或门(XOR gate),而它和其它三种门电路——正如我将要说明的,恰好是我打算用作我的孵育工作的原料。

于是我转向2位加法器,也就是输出数有两个比特位,但这样一来,为了不让结果“溢出”,输入数就只能有1个比特位了,我担心这样是否过于简单,以至于我准备使用的那些原料稍一凑巧就能组合出我想得到来的东西,从而使我精心策划的孵育行动显得平淡无奇。这样,我最终选定了3位加法器,我相信它已足够有趣,因为很容易发现(因为连我也很快发现了):这种小的加法器经过简单的重复串接,可以组成任意位数的大的加法器;并且我猜想它也将足够复杂,不至于被我的原料们轻易凑巧拼出来。

我就这样开始干起来。

首先,我假定存在这样一种虫子,它的某一段(如下图,不妨叫它尾巴)的两侧各有4个点,我们称上面的为输入点,下面的称为输出点(就我们的饲养目的而言,只需要三个输出点,我放上第四个只不过为了满足我对对称性的偏好,今后当我们评估这些饲养产品的性能时,自然可以对这个点的状态不予考虑)。

image001

在上下两层之间,有着一些特别的“丫”状颗粒(如下图,你可以叫它丫头或者三毛,随你喜欢),它们在虫子生长过程中,可能会从它们的两个“上枝丫”上长出一根枝条连接到其他丫头的“下枝丫”或者某个输入点上,至于某个丫头的某个上枝丫是否长出枝条以及连到哪个点上,由基因G决定。

image002

和丫头们一样,那些输出点也会长出枝条(不过每个点只有一个)连接到某个丫头的下枝丫或者某个输入点上,至于与谁连接,同样由基因G决定。为了方便,我决定在每个虫子尾巴里放进28个丫头。

输入点上时常会受到一些刺激(比如光照),当某个点受到刺激时,我们称其状态为“1”,未受刺激时则称为“0”;类似地,每个丫头的下枝丫也有两种可能状态(0和1),它取决于其两个上枝丫所连接点的状态,决定的方法由丫头本身的性质而定。有四种丫头,对应四种决定方法,分别称为:“非”、“与”、“或”、“异”(我想不需要解释他们的含义了,只有一点需要指出,“非”丫头的下枝丫状态只与其左上枝丫所连接点的状态有关,其右上枝丫可视若无物)。至于一个丫头到底长成哪种类型,也由基因G决定。

输出点总是黑色的(称为0),除非它们长出了枝条连接到某个状态为1的输入点或下枝丫上,这时它是白色的(称为1)。

现在来看看我们的基因G。它存储了356bit的信息,其中56个将决定那28个丫头的类型(每个丫头需要两个,因为一共有四种类型),另外300个将决定60个点(28个丫头的56个上枝丫加上4个输出点)是否长出枝条并伸向何方,每5个bit决定1个点,5bit组成一个0~31的整数,其中0表示“没长枝条”,其余分别表示长了枝条并指向第i个点(若i<=4,它是第i个是输入点,若i>4则是第i-4个是丫头的下枝丫(你或许已经发现,这样第28个丫头永远都不会被指到,因为我数错了数,把那个0给漏了,哈哈!不过这无关紧要,因为我是饲养员,不是电子工程师。在我这个老大粗的眼里,27个和28个丫头一样——看起来差不多够用了)。

在开始我们的饲养工作之前(是不是等得不耐烦了?),还有几桩小事要做。

首先,我的虫群每隔一段时间有一个繁殖季节(实际上,隔多久取决于我的PC的性能和我作为程序员的水平,哈哈),两个繁殖季节之间,他们每个将遭遇N次生活的考验(我把这个N叫做考验频率)。所谓一次考验,抽象地说,就是这样一个过程:他接受一个输入,并形成一个反应(包括毫无反应的反应),然后他的反应和输入之间的关系将被评估,评估的结果可能导致两种影响:1)可能影响他在下一个繁殖季节到来之前继续生存的机会;2)可能影响他在下一个繁殖季节中的生殖能力。(当然,实际上还存在着对进化过程起作用的第三种影响,即他在其后代或血缘近亲需要其帮助的期间继续提供帮助的能力,但在这里我暂时将其忽略。)举个例子,对于一只猴子而言,它附近某棵树上掉下一只苹果这一事件就形成了一次对它的考验,假设他作出了这样的反应:伸手抓住苹果并吃进肚子里,那么自然选择的价值函数将给他打出一个正分;如果他的反应是:对着苹果勃起他的生殖器,他很可能得到一个负分(如果小鸡鸡不幸被苹果打中的话)。

所以,重要的是,我们的饲养间应该能提供这种考验,并对考验的结果作出评估,再用评估的结果去影响受考验者在本繁殖周期中的生存机会和生殖能力。幸好,我们的饲养任务很简单,对一个加法器的考验无非就是让他算算看,而评估的方法就是看看算得对不对,恰好,我的饲养间外面那个大房间正以长于此道而著称。如果我的目标是32位加法器,那么用来选择考题的题库就很大(共4294967295道题),这样,只能每次抽取N个考题用作考验(N=考验频率),但目前我们的题库很小,一共才16道题,所以我决定,把N设为1,即每个繁殖周期内每人(应该说每虫)只考一次,每次把所有16道题都做一遍,而且凡旧虫都不需要做(所谓旧虫就是在上个繁殖季节后幸存下来的那些个体),因为他们在上个季节中已经把所有题目都做过了,分数继续有效——多么省力的饲养工作啊!

但还是有个问题需要作出决定——我应该使用什么样的价值函数呢?或许我应该做个严格的考官:16道题全部做对得满分,否则零分。但这样的话,我所指望看到的一个完美的加法虫在进化过程中从一开始那堆胡乱堆放的“丫头”中浮现出来的美景,便成为一种“单步选择”了,正如Dawkins所指出,这不是达尔文所说的进化,而是达尔文的反对者们所描绘的那种猴子跳键盘舞敲出莎士比亚妙句的故事。不,我可不想让猴子在我的饲养间里跳舞!我需要的是一种“渐进选择”,一种达尔文式的进化。

我最初的想法是一种“彻底的”渐进改进激励函数,即,只要算对一个bit位就给分,每道题的三个输出位上对1个得0.25分,对2个得0.5分,3个1分(第4个bit不予考虑),但后来不知何故我没采用这种方法(大概是因为我出去吃了碗拉面回来时忘了这个念头,讨厌的拉面!)。现在,我的价值函数是这样的,16道题每做对1道给0.0625分,哈哈,无比简单。我不知道这个函数能否形成一条有效的激励途径,将我的虫子引向某条最终让他变成完美加法虫的光辉道路,听天由命吧。

现在,我必须建立一个夏娃,即那最初祖先虫个体。我的夏娃很特别——她基因的每个bit全是0,(我不知道用一个随机数是否会好一点,不过从0开始演化的过程看起来更有趣),翻译成16进制码(每位16进制码对应4个bit位)就是:

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

然后,我让她开始繁殖。这时的问题是:应该如何决定一个虫子在某个繁殖季节里该生几个孩子?我认为需要确定一个数字,叫做基准生殖率,意思是那些在本季节的考验中表现中等的个体在当季的生殖率,那些表现较优的个体的当季生殖率将被一个指数函数放大,函数的底是他的本季效能数(我用这个数字来存储他在考验中被评估的结果,其值介于0~1之间,随其表现而渐近于1),函数的指数叫作生殖指数,它表明了考验中表现差异在生殖竞争中被放大的程度。上述运算得到的数字就是该虫在当季被批准的生育数。当然,这个数字可能是各小数,但半个孩子是没用的,解决的办法是抛硬币,比如,经过计算,虫甲本季被允许生1.7个,意思是,他可以先生下一个,至于能否生第二个,向0和1之间抛个硬币,如果硬币落在0.7左面,就可以生第二个。

这就是一个繁殖季节里发生的生殖游戏,但这不是游戏的全部,生产过后就是死亡,部分虫子必须死去,谁存谁亡,同样由抛币决定,但机会并不均等,同样因虫们在生存考验中的表现而异,不必赘言。需要解释的是,该死多少虫?和生殖不同,我们不需要预先确定一个死亡率,只需要确定一个大致的种群规模限制,黑话叫“马尔萨斯极限”——正如这位哲人所指出,虫子没那么多不是因为他们不会生,也不是因为他们到时间就会死,而是因为他们总是被压制在资源所允许的数量之下。所以死亡率是个多余的概念——至少在避孕套发明之前,——而我,勤恳的虫子饲养员,不会慈祥到向它们发放Durex(哈哈,说的兴起,差点忘了我的虫子乃无性繁殖一族),另外我也要为我那台破PC担心,所以我决定,把种群规模限制在20000。

如果夏娃的每个后代都与她一模一样,那么我的饲养间将不能产生任何新东西了,必须让基因在繁殖过程中有所变化,现实生物界的基因变异率是极低的,但考虑到我们小得可怜的种群规模和我那台破PC的速度,我只好把他调高一点(不好意思,大概高了几十万倍吐舌头),这样做的代价可能是每代新生个体中出现很多劣化的(在那个价值函数看来)变异,但我希望生殖和生存优势足以扩散和维持既有的优势变异,同时及时驱除劣化变异,后来的情况表明,他做到了。

一个新生虫降临时,抛币和给定的变异率将决定它是否变异,如果他被决定变异,则再次抛币(在0和1之间)以决定他的基因中有几个bit位将被改变,比如抛出的值是X,将有Max(1,Log2(1/X))个bit位被改变,这样安排是为了提供一种使多个bit位被同时改变的机会(虽然几率被限制得很低),借此暗暗指望一些奇妙的突变成为可能。

在啰嗦了半天之后,好戏终于开场了(别走开,待会儿收赞助)。

夏娃开始繁殖。

在前几代中,没有什么引人注意的事,变异的确发生了,但结果看上去(黑话叫表现型(phenoype))很无聊,比如夏娃又这样一个孙女:

image003

图下面那串数字是基因的16进制码,他的某个bit位上的变化导致了从20号丫头的左辫角上伸出一条线连接到0号输入点,在电子工程师眼里,这当然毫无意义。所以这些孙女的成绩都停留在0.0625上——不是0,因为他们至少做对了一道题目:0+0=0。

这样无聊的日子过了五代,这时,有了变化,我发现出现一个基因并且迅速扩散,因为他的成绩达到了0.125,表明他做对了两道题,紧接着另一个家伙出现,并且扩散势头迅速盖过前一个,他的成绩是0.1875,做对了三道。这立即引起了我的注意,我把程序停了下来看个究竟,下面就是那两个家伙(注意:他们只是这群虫子里取得同时最高成绩的那些众多个体中任意抽取的两个,这些个体的基因和表现型并不相同,但成绩相同,以后的例子也是这样):

image004

第一个家伙把0号输出点跟一个“非”丫头连起来,而那个丫头没有输入,在我的规定里,没有输入就是0,所以他的输出永远是1。这家伙因此不能就算不对0+0=0,但是,在付出这样的代价之后,它现在能蒙对两道题了:0+1=1;1+0=1——因为他的输出永远是1——哈哈!说他是蒙对的没人会有意见吧?

第二个家伙看上去高明不了多少,只不过他连到“非”丫头上的是1号输出点,因此就能蒙对三道题:0+2=2;2+0=2;1+1=2。

如果你还没晕倒,说明你不是电子工程师——和我一样。作为饲养员,我乐于看到这两个撞上大运的家伙吃得白白胖胖,多子多孙。不过我也不免生出一丝担心,如此这般瞎蒙乱撞,真能有朝一日修成正果吗?

为了自我安慰,我给这两个家伙的做法取了个名字——“消极适应”,就象整天下雹子的地方,有些人学会如何对雹子的出现和坠落作出反应,这是“积极适应”,而另一些人则变得深居简出——永久性的改变自己的状态,我叫它“消极适应”,虽然消极,也是适应。然而问题在于,就我当前的饲养目的而言,这种消极适应存在一个极限:最多做对四道题。这还不是最糟糕的,根本的问题是,这种适应性变异不具有可累积性。从做对一道题到做对四道题的变迁中,每一阶段并没有从前一阶段的改进中获益,我们已经知道,这不是我们期望看到的进化过程。

因此,当虫子们在第8代达到了消极适应的极限后,便陷入了长期的停滞状态。我注视着屏幕上不断刷新的数据,基因的16进制码变得越来越复杂,图案上的线条越来越纷繁杂乱,但是效能指数一直停留在0.25上,丝毫没有动静,只有一个指标好像在稳步增长,它是“多样化率”,它一直增长到大约0.75左右,然后稳定下来。我的迫切和憧憬渐渐被枯燥和无奈所侵蚀,我决定到沙发上睡一觉,而让虫子们自己去连续繁衍上300代(按前面的情形,这大概要花上几个小时)。

当我从沙发上跳起来,揉著眼屎去拍醒那个休眠的太深的显示器时,我的急切心情是想必可以被原谅。

我没有失望,在第151代,曙光出现了,成绩达到0.5,然后紧接着在第165代,达到0.625。下面就是那条被我叫做G0151的宝贝虫子:

image005

G05=XOR(X2,X0)
Y0=G05
Y1=X1
Y2=X3
Y3=X3

他的线条已多得难以辨认,所以我在图右边列出了它的逻辑表达式,以便于看清它是如何工作的。表达式中的Xi和Yi分别对应输入和输出点,Gi对应丫头。我惊喜的看到,他学会了使用“异”门,而且把它用在可以立竿见影的地方——他把两个输入数的第一个bit位用“异”门(G05)连起来,并输出给输出数的第一个bit位,而这恰是1位加法的正确做法,这样它保证了Y0位的结果永远是正确的,正是这一点大大提高了他的成绩。对异门的使用是个关键的突破,不只是因为成绩的提高,重要的是,这一改进是可累积的,G0151的下一个创新者G0165继承了它,不仅如此,这一突变结果一直被保留到我的饲养工作的终点(当然,我后来才知道这一点),“G05=XOR(X2,X0)”和“Y0=G05”这两行,一直牢固的占据着后来所有幸存者的基因里相应的那17个bit。

G0165的进步在于,他在尝试使用门电路来改进Y1位的运气上获得了部分成功,在这个位上先前的方法是直接与X1相连,可以蒙对8个(一半),改进后的方法能蒙对10个,当然地,自然选择对此加以鼓励。下面是他的逻辑表达式:

G02=AND(X1,G04)
G04=NOT(X3)
G05=XOR(X2,X0)
Y0=G05
Y1=G02
Y2=X3
Y3=X3

我们发现在这两次改进期间,实际上(后来发现),自从G0151之前100多代直到第521代之前,对Y2位的处理没有什么变化,实际上,它一直被直接连在X3上。其实原因很简单:找出更有效的复杂方法之前,这种简单做法已经够好了——能蒙对12个!

在Y1上的改进直到第399代才有获得突破,G0399能蒙对12个,表达式如下:

G01=XOR(G10,G17)
G02=AND(X1,G20)
G04=AND(0,G13)
G05=XOR(X2,X0)
G06=OR(0,G12)
G10=AND(X2,G06)
G12=NOT(G14)
G13=NOT(G05)
G14=NOT(X0)
G17=OR(G04,X3)
G20=NOT(G01)
Y0=G05
Y1=G02
Y2=X3
Y3=X3

如你所见,该虫为了多蒙对两个,走了多少弯路!几乎用尽了我所限定的递归深度(9层)。尽管差异很大,但在G0399的表达式里,我们仍然能看到G0165的身影:“Y1=G02”和“G02=AND(X1,G20)”。同时,来自宝贝G0151的那宝贵的两行,“G05=XOR(X2,X0)”和“Y0=G05”,仍在那里,丝毫没动,被自然选择盛情挽留。我全部希望所倚靠的“可累积性”看来正在得到验证。

在Y1上的改进最后G0521完成,表达式如下:

G01=OR(0,G16)
G02=XOR(X1,G21)
G05=XOR(X2,X0)
G12=NOT(G14)
G14=OR(G05,G01)
G16=NOT(X0)
G18=XOR(0,G02)
G21=XOR(G12,X3)
Y0=G05
Y1=G18
Y2=X3
Y3=X3

在观看G0521的表达式时,我突然感到一种深深的不安,它和G0399一点也不像,好像是个突然冒出来的野小子,我的“可累积性”似乎在被动摇。在仔细检查了我的数据后,疑团终于解开:G0399的优势变异看来灭绝了,他那带来改进的变异还没来得及在种群中扩散开,就被新的变异所覆盖,这要归咎于我把变异率定的太高。不仅如此,我发现,同等效果的变异实际上灭绝了三次,他们分别来自:G0399,G0400,G0481,幸而,G0484的同效变异没有灭绝,它是这样的:

G01=OR(0,G16)
G02=AND(X1,G21)
G05=XOR(X2,X0)
G14=OR(G05,G01)
G16=NOT(X0)
G18=XOR(0,G02)
G21=XOR(G14,X3)
Y0=G05
Y1=G18
Y2=X3
Y3=X3

瞧!他和G0521是不是像极了?!“可累积性”被挽救了!
到此为止,Y0和Y1已经被解决,进一步改进的可能性只能是拿Y2开刀,这家伙长期以来凭着他能蒙对12道题的本事而养尊处优,现在,他的好日子到头了。
在这个新大陆第一个挖到金子的是G0576:

G01=OR(0,G16)
G02=XOR(X1,G21)
G05=XOR(X2,X0)
G08=AND(X1,X3)
G12=NOT(G14)
G14=OR(G05,G01)
G16=NOT(X0)
G18=XOR(0,G02)
G21=XOR(G12,X3)
Y0=G05
Y1=G18
Y2=G08
Y3=X3

他蒙对14道题。然后是G0615:

G01=OR(0,G16)
G02=XOR(X1,G21)
G05=XOR(X2,X0)
G07=AND(X1,G12)
G08=AND(X1,X3)
G12=NOT(G14)
G14=OR(G05,G01)
G16=NOT(X0)
G18=OR(0,G02)
G21=XOR(G12,X3)
G24=OR(G07,G08)
Y0=G05
Y1=G18
Y2=G24
Y3=X3

15道。还差一道。

最后,在经过了659代繁衍之后,我期待已久的那只“完虫”出现了——G0659:

G01=OR(0,G16)
G02=XOR(X1,G21)
G05=XOR(X2,X0)
G06=XOR(G12,X1)
G07=AND(X1,G12)
G08=AND(G06,X3)
G12=NOT(G14)
G14=OR(G05,G01)
G16=NOT(X0)
G18=OR(0,G02)
G21=XOR(G12,X3)
G24=OR(G07,G08)
Y0=G05
Y1=G18
Y2=G24
Y3=X3

我凝视着屏幕上我那只“完虫”的图案,贪婪的享受着它带给我的愉快,然后逐个bit的对照,逐条逻辑的测试,以便确信我的愉快并非建立在沙子上。

据说J. von Neumann当初用六个元件就搭出了一个加法器,而我的虫子则乱糟糟整个一团乱麻,Neumann是个大数学家,对于他那简洁漂亮的加法器,他就是上帝,他设计了它,制造了它,向它吹了一口气,于是它就有了活力;而我,只是个饲养员,我甚至连教练都不是,我没有向虫子们传授任何有关加法的知识和技能,我做的唯一的事情就是勤奋的批阅考卷,并冷酷无情的削减那些得低分者的生存和生殖机会,只为一个自私的目的——获得一条加法虫。

现在,瞧,——他就在那里。

辟谣:香港从未有1/4青年失业

我在上一篇里指出了劳动法/最低工资法与失业率尤其是青年失业率的关系,paulymh在未给出数据来源的情况下声称“香港也有1/4青年失業,但香港沒有最低工資”。

事实上,香港青年失业率的历史最高点出现在2003年第三季度,该季香港青年失业率按劳工及福利局的数据是18.8%,按香港青年協會的数据是18.5%。

劳工及福利局的数据,2008年第二季度,香港失业率已降至3.3%,其中青年失业率8.3%(more...)

标签: | |
528

我在上一篇里指出了劳动法/最低工资法与失业率尤其是青年失业率的关系,paulymh在未给出数据来源的情况下声称“香港也有1/4青年失業,但香港沒有最低工資”。

事实上,香港青年失业率的历史最高点出现在2003年第三季度,该季香港青年失业率按劳工及福利局的数据是18.8%,按香港青年協會的数据是18.5%。

劳工及福利局的数据,2008年第二季度,香港失业率已降至3.3%,其中青年失业率8.3%。

不幸的是,香港社会目前对最低工资法的呼声很高,明年很可能成功立法,可以预期,今后香港青年失业率会上升。

劳动法孽债累累,青年骚乱从法国蔓延到希腊

与法国郊区失业青年骚乱、德国光头党到处闹事一样,这次希腊骚乱也非一日之寒,长期高达1/4的青年失业率下,不骚乱才怪。青年高失业率的原因很简单,严格的劳动法和最低工资标准让企业不敢雇佣新员工,即使雇佣也以临时工和实习生为主,已经雇佣的老员工受法律所限解雇不掉,结果青年只好吞吃苦果。

最低工资标准,说白了就是禁止劳动产出率低于该标准的人工作,这跟欧洲禁止2欧元以下的温州打火机进入欧洲市场,完全是一码事,糊涂人不明白,支持前者,反对后者。以下摘自WSJ的报道

从罗马到柏林,再到马德里,年轻人大学毕业的时间比北欧、美国或英国的同龄人晚很多,毕业后要找到提供社会保障福利的长期工作也是困难重重。

标签: |

529

与法国郊区失业青年骚乱、德国光头党到处闹事一样,这次希腊骚乱也非一日之寒,长期高达1/4的青年失业率下,不骚乱才怪。青年高失业率的原因很简单,严格的劳动法和最低工资标准让企业不敢雇佣新员工,即使雇佣也以临时工和实习生为主,已经雇佣的老员工受法律所限解雇不掉,结果青年只好吞吃苦果。

最低工资标准,说白了就是禁止劳动产出率低于该标准的人工作,这跟欧洲禁止2欧元以下的温州打火机进入欧洲市场,完全是一码事,糊涂人不明白,支持前者,反对后者。以下摘自WSJ的报道

从罗马到柏林,再到马德里,年轻人大学毕业的时间比北欧、美国或英国的同龄人晚很多,毕业后要找到提供社会保障福利的长期工作也是困难重重。

在德国,包括众多大学毕业生在内的很多年轻人近些年一直在努力寻找支付全额工资的工作。长期以来他们一直以无薪或低薪实习的方式工作。德国媒体将这些没有经济保障的年轻人称为“实习的一代”(Generation Intern)。

西班牙这代年轻人的工作福利和保障也少得可怜,他们经常在临时性工作之间换来换去,这样其雇主就可以避开国内劳动法规定的繁杂义务。媒体将这些人称为“mileuristas”,简单来说,就是指那些靠每月1000欧元微薄收入生存的人。在希腊,类似的人群则被称为“600欧元一代”,因为希腊的最低工资标准是600欧元。

 

共和党参议员做了件正确的事

此前的国会听证会上,议员们貌似火力凶猛,实则避重就轻,把焦点扯到了私人飞机和高管薪酬等枝节问题上,这一次,共和党参议员总算抓住了要害——劳动成本,以下摘自WSJ报道

两党的谈判集中在如何让美国汽车业作出一系列承诺上,包括进行债务重组、以及将用工成本降至与丰田汽车公司(Toyota Motor Corp.)和日产汽车公司(Nissan Motor Co.)在美业务相一致的水平等。但由于共和党人坚持要三大汽车公(more...)

标签: | |
530

此前的国会听证会上,议员们貌似火力凶猛,实则避重就轻,把焦点扯到了私人飞机和高管薪酬等枝节问题上,这一次,共和党参议员总算抓住了要害——劳动成本,以下摘自WSJ报道

两党的谈判集中在如何让美国汽车业作出一系列承诺上,包括进行债务重组、以及将用工成本降至与丰田汽车公司(Toyota Motor Corp.)和日产汽车公司(Nissan Motor Co.)在美业务相一致的水平等。但由于共和党人坚持要三大汽车公司在2009年就将员工工资降至与丰田和日产在美员工工资相一致的水平,谈判最终还是破裂了。……民主党人也支持将三大汽车公司的员工工资降至与丰田和日产在美业务一致的水平,但不同意以如此快的速度完成。

救助案在参院和众院的不同命运乃意料中事,参议员的任期长度是众议员的三倍,因而相对不受短期民意和舆论的影响,对自己观点(无论是正确还是错误的)比较能坚持。

凯伦·马休斯绑架亲女案,福利制度买到的又一出悲剧

福利制度,就是政府用纳税人的钱,去大规模采购贫穷、痛苦和懒惰。

以下摘自BBC的报道

从未工作过的凯伦·马休斯,一直靠政府救济过活。她迄今已与五名男性生下七名子女。据悉,当她今年初在电视上看到人们为某失踪儿童寻人基金捐款的报道时,突然灵机一动,决定设局绑架自己的女儿,以骗取公众善款。……

作案后,凯伦向警察谎报女儿鲜农(Shannon Matthews)失踪,导致警方耗资300多万英镑,动用大量人力物力,搜索长达24天。……

据英国2001年的人口普查数据显示,在全国约6,000万人口中,500万属于长期依靠领取政府救济生活的永不工作人群。也就是说,英国有将近10%的社会底层人口是依靠社会救济生活的,而这些人口往往也是出现家庭破裂、青少年犯罪率高等诸多问题的重灾区。……

贝提森署长还表示,长此以往,英国一些贫困社区将与外界社会彻底断绝关系,使得这些地方的人一代又一代只靠政府救济生活,失去做人的基本(more...)

标签: |
531

福利制度,就是政府用纳税人的钱,去大规模采购贫穷、痛苦和懒惰。

以下摘自BBC的报道

从未工作过的凯伦·马休斯,一直靠政府救济过活。她迄今已与五名男性生下七名子女。据悉,当她今年初在电视上看到人们为某失踪儿童寻人基金捐款的报道时,突然灵机一动,决定设局绑架自己的女儿,以骗取公众善款。……

作案后,凯伦向警察谎报女儿鲜农(Shannon Matthews)失踪,导致警方耗资300多万英镑,动用大量人力物力,搜索长达24天。……

据英国2001年的人口普查数据显示,在全国约6,000万人口中,500万属于长期依靠领取政府救济生活的永不工作人群。也就是说,英国有将近10%的社会底层人口是依靠社会救济生活的,而这些人口往往也是出现家庭破裂、青少年犯罪率高等诸多问题的重灾区。……

贝提森署长还表示,长此以往,英国一些贫困社区将与外界社会彻底断绝关系,使得这些地方的人一代又一代只靠政府救济生活,失去做人的基本尊严和道德。……

个人救济和私人慈善值得赞赏和尊敬,而政府福利制度则是基于这样的前提:首先,他们蔑视人类的慈悲之心,认为它不足以将痛苦减少到应有的程度;同时,他们却认为人类已经高尚到不再能容忍这么多痛苦在眼前发生。
关于何为有效的慈善行为,我在<善款买的是什么?>一文中曾指出:
捐助者需要明白,如果目标是治愈伤口,那么你在看到伤口时付出的善款就仅仅是预付款,受助者或作为中介的慈善组织必须用治愈的结果来报账,至此这笔购买才算完成,如此才能保证善款购买的是伤口的治愈,而不是伤口本身。……行善者在洒下同情眼泪,抛下硬币之后,良心得到抚慰,而没有索要治愈结果的报告,于是,善款购买了伤口。
需求创造供给,有人买就有人卖,出价越高卖方越起劲,没有伤口就制造出伤口,价格够高时甚至会有人自残待沽。因为缺少了报账环节,慈善的回路被短路了。指出这一逻辑显得十分冷酷,但事实无可回避。为了避免这样的悲剧,报账环节必须被强化,捐赠者应仔细鉴别、慎重选择慈善组织,而后者应主动公布每一笔善款的使用细节和救助效果,如此才能确保善款被用来实现捐款人所希望的目标,而慈善业也才能得到健康发展。
迄今为止,我见过的政府福利制度,全都缺乏上述回路,它们都是在采购伤口。 
关于自由意志和奴役,续答araby

关于自由意志和奴役的话题,在原贴的评论中已经有了很有意思的讨论,我也答复几位朋友的疑问,现在原贴已沉下去,还是另起一帖吧。

araby说:

比如说,你很有钱,可以选择去百慕大度假,也可以选择呆在家里;我没钱,我只能呆在家里。这时候我说“我呆在家里,是因为我没有‘自由选择’”我这样说并不是荒谬的,因为我这时候说的我没有“自由选择”没有任何暗指(indicate)我不必为我呆在家里的选择承担责任。

如果你没有作这样的暗指,我(more...)

标签: |
532

关于自由意志和奴役的话题,在原贴的评论中已经有了很有意思的讨论,我也答复几位朋友的疑问,现在原贴已沉下去,还是另起一帖吧。

araby说:

比如说,你很有钱,可以选择去百慕大度假,也可以选择呆在家里;我没钱,我只能呆在家里。这时候我说“我呆在家里,是因为我没有‘自由选择’”我这样说并不是荒谬的,因为我这时候说的我没有“自由选择”没有任何暗指(indicate)我不必为我呆在家里的选择承担责任。

如果你没有作这样的暗指,我就没有任何意见。但我认为通常这种说法都包含了这样的暗指,因此我认为他们已经进入了伦理学和法学语境,看看这些说法是如何影响伦理和法律环境的:

1)他没有过教育,缺乏技能,因而只能接受500元月薪的工作,这算不上他的自由选择,因而他的雇佣契约算不上自由契约,所以,由政府规定最低工资和劳动合同,没有剥夺他的自由,而是保护了他的权利……

2)他很穷,买不起面包,这不是他的错,是社会的责任,所以政府应代表社会来帮助他……

3)“人人都有免于匮乏的自由”(罗斯福语)。什么叫免于匮乏的自由?意思是如果他匮乏了就可以去抢?或者让政府替他去抢?

这些听上去是否耳熟?它们是否进入了伦理学和法学语境?

Chrome试用报告

昨天装了个Chrome,一天用下来,几点体会:

之前用Google Reader翻阅feeds,过300条后,速度降到不可接受,现在完全没问题。

1)JavaScript速度的确很快,如果你用Google Docs写文档,感觉最明显,SpreadSheet的处理流畅很多,IE下很卡(这是我装Chrome的主要动机),Gmail和Google Reader的速度也有明显改善。

2)书签功能不错。

3)开启和关闭网页的速度都比IE好(我很纳闷IE关闭为何如此慢,它在干啥?),而且关闭网页后的内存释放比较干净。(more...)

标签:
533
昨天装了个Chrome,一天用下来,几点体会: 之前用Google Reader翻阅feeds,过300条后,速度降到不可接受,现在完全没问题。 1)JavaScript速度的确很快,如果你用Google Docs写文档,感觉最明显,SpreadSheet的处理流畅很多,IE下很卡(这是我装Chrome的主要动机),Gmail和Google Reader的速度也有明显改善。 2)书签功能不错。 3)开启和关闭网页的速度都比IE好(我很纳闷IE关闭为何如此慢,它在干啥?),而且关闭网页后的内存释放比较干净。 4)内存开销较大(每个沙盒至少30多MB),感觉Chrome是牺牲内存换取速度和安全性。 5)缺点:好像访问ASP服务有问题,牛博浏览没问题,但写文章好像不行,本文就是IE写的。不是Chrome的问题,我刚刚用它post了一篇。 6)缺点:因为不支持Toolbar,用不了GoogleToolbar所提供的网页取词翻译功能。 7)网页渲染效果貌似比IE好,比如Google Reader界面改版后,在IE下五角星标有锯齿,Chrome没有。 总结:如果你访问大量应用JavaScript的网页的频率很高,最好装一个;用ASP的网页可以继续用其他浏览器。就我而言,每天使用GoogleReader/Gmail/Notebook/Docs的时间占我上网时间的大部分,所以感觉很值。 注:我没用过FireFox。