Tillbaka till svenska Fidonet
English   Information   Debug  
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33945
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24159
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4436
FN_SYSOP   41707
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13613
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16074
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22112
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   930
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   0/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1123
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3249
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13300
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/341
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4289
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   33421
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2065
DOS_INTERNET   0/196
duplikat   6002
Möte EVOLUTION, 1335 texter
 lista första sista föregående nästa
Text 1276, 228 rader
Skriven 2004-12-31 15:03:00 av Tim Tyler (1:278/230)
Ärende: Re: The "fuel" of evoluti
=================================


Perplexed in Peoria <jimmenegay@sbcglobal.net> wrote or quoted:
> "Tim Tyler" <tim@tt1lock.org> wrote in message
news:cquoj6$u8q$1@darwin.ediacara.org...
> > Perplexed in Peoria <jimmenegay@sbcglobal.net> wrote or quoted:

> > > Clearly, to have any hope at all of preserving the original information,
it
> > > must be the case that any one tape in the population will sire on average
> > > more than one error-free descendent.  To complete the analogy, we need a
> > > selection process that is biased toward chosing error-free descendents as
> > > the sources for the next generation of copies.
> >
> > Yes, but a way of increasing the variance of the number of mutations in
> > individuals would help selection do its job in this area.
> >
> > If the deleterious mutations are concentrated in some individuals,
> > fewer members of the population need to fail for the gene pool to
> > remain in good working order.
> 
> I fully agree that IF recombination increases the variance in number of
> mutations per individual, then your argument works.  What I don't
> agree with is that recombination *will* increase the variance, unless you
> make some totally artificial assumptions regarding the source of
> mutations.  For example, if your mutation process inserts *exactly* one
> mutation per individual (low variance), then recombination obviously
> will redistribute the mutations so that you have (in the simplest model)
> 25% with no mutations, 50% with one, and 25% with two mutations.  The
> variance per individual has increased.  But the initial assumption
> regarding the statistics of the mutations is unrealistic, IMO.

Fortunately, your query can easily be dealt with by a more sophisticated
model.

Here's a model where mutations occur with much greater biological
realism - where mutations occur in individuals with some fixed
probability - and individuals can have 0, 1 or more mutations
per generation.

Heavily mutated individuals - with more than some threshold number
of mutations - are eliminated - and new individuals take their
place.

The results (which are highly repeatable):

Asexual experiment
Deaths: 538260
-----
Sexual experiment
Deaths: 422799
-----

I.e. the sexual population needs many fewer selective deaths to keep its
gene pool in good order.

The mutation model here is pretty good - and making it even more realistic 
would not alter the results - the effect is one that really does exist.

What /could/ be criticised is the idea that there is a mutation threshold 
- beyond which you are dead.  Making this more realistic would 
reduce the magnitude of the effect - but would not eliminate it.

Fairly simple Java 1.1 (or greater) source code appended
for your inspection:

import java.util.Random;

public class GeneRepair {
  final int pop_size = 100;

  final int mutation_attempts_per_generation = pop_size;

  int[] population;

  final double mutation_rate = 0.1;

  final int generation_max = 10000;

  int generation = 0;

  int death_count;

  final int death_threshold = 4;

  boolean sex;

  Random random = new Random();

  private void main() {
    this.sex = false;
    experiment("Asexual");
    
    this.sex = true;
    experiment("Sexual");
  }

  private void experiment(String name) {
    log(name + " experiment");

    init();
    do {
      iterate();
    } while (this.generation < this.generation_max);

    printStats();
  }

  private void init() {
    this.generation = 0;
    this.death_count = 0;
    this.population = new int[this.pop_size];
  }

  private void iterate() {
    mutateAll();
    selectionAll();
    this.generation++;
  }

  private void selectionAll() {
    for (int idx = this.pop_size; --idx >= 0;) {
      selection(idx);
    }
  }

  private void selection(int idx) {
    int total_bits = countBits(getMember(idx));
    if (total_bits > this.death_threshold) {
      deathAndReproduce(idx);
    }
  }

  private void deathAndReproduce(int idx) {
    death();
    reproduction(idx);
  }

  private void reproduction(int idx) {
    this.population[idx] = reproduce();
  }

  private int reproduce() {
    int parent_1 = chooseParent();
    if (this.sex) {
      return sexual(parent_1);
    }

    return getMember(parent_1);
  }

  private int getMember(int parent_1) {
    return this.population[parent_1];
  }

  private int sexual(int parent_1) {
    int bit_mask_maternal = this.random.nextInt();
    int bit_mask_paternal = (-1 ^ bit_mask_maternal);
    int parent_2 = chooseParent();

    int genes_maternal = getMember(parent_1) & bit_mask_maternal;
    int genes_paternal = getMember(parent_2) & bit_mask_paternal;

    return genes_maternal | genes_paternal;
  }

  private void death() {
    this.death_count++;
  }

  private int chooseParent() {
    //  using "%" is poor style - but is good enough here...
    return (this.random.nextInt() >>> 1) % this.pop_size;
  }

  private void mutateAll() {
    for (int idx = this.mutation_attempts_per_generation; --idx >= 0;) {
      simulateCosmicRays(idx);
    }
  }

  private void simulateCosmicRays(int idx) {
    if (this.random.nextFloat() < this.mutation_rate) {
      mutate(idx);
    }
  }

  private void mutate(int idx) {
    int bit_mask = 1 << (this.random.nextInt() & 31);
    this.population[idx] ^= bit_mask;
  }

  private void printStats() {
    log("Deaths: " + this.death_count);
    log("-----");
  }

  private void log(String s) {
    System.out.println(s);
  }

  private int countBits(int value) {
    int bit_count = 0;
    for (int idx = 32; --idx >= 0;) {
      int bit_mask = 1 << idx;
      if ((value & bit_mask) != 0) {
        bit_count++;
      }
    }

    return bit_count;
  }

  public static void main(String args[]) {
    new GeneRepair().main();
  }
}

-- 
__________
 |im |yler  http://timtyler.org/  tim@tt1lock.org  Remove lock to reply.
---
ū RIMEGate(tm)/RGXPost V1.14 at BBSWORLD * Info@bbsworld.com

---
 * RIMEGate(tm)V10.2á˙* RelayNet(tm) NNTP Gateway * MoonDog BBS
 * RgateImp.MoonDog.BBS at 12/31/04 3:03:47 PM
 * Origin: MoonDog BBS, Brooklyn,NY, 718 692-2498, 1:278/230 (1:278/230)