Talk:Daisyworld

From Wikipedia, the free encyclopedia

Contents

[edit] Discussion

If rewritten today, the classic book "how to lie with statistics" might as well be called "how to lie with statistics and computer simulations."


"proves" -> "arguably demonstrates" since (i) a model is a demo, not a proof, and (ii) there is a minor philosophical objection that selection of components for a model is not entirely purposeless. This wording still retains the central point and value of the demonstration. - Paul


OK, I'll bite:

W&L proved that non-teleological systems with biologically mediated feedback loops do exist (and thoughtfully provided us with an example). Although I'll need to ponder your point about selection of model components. Modellers do indeed have God-like powers!

WRT to W&L being a demo not a proof, I would say that the demo _is_ the proof (of existence). But...what does "exist" mean? Does Daisyworld exist? I would be tempted to stick with Daisyworld as a perfect representation of a system which exists in the Platonic sense (OTOH, planar planets must be rare).

Still, the *mechanism* exists, without a doubt. Does this count?

heh

Robinh 15:28, 26 Jul 2004 (UTC)


I guess it's proof of existence of a model [Daisyworld is a model that demonstrates biologically mediated homeostasis - so it exists in that sense]... but proof that Daisyworld is not teleological is a different thing. It seems philosophically difficult to "prove" there is no intentionality in a model that someone has designed. Hard for me, anyway :-)

It's the kind of thing that philosophers can argue over interminably (before they deadlock and stab each other with their forks), but I settled for wording that was somewhere short of "knock down mathematical proof", and ducked the "how persuasive" part of the debate entirely. You could say "persuasively demonstrates" if you think I understated the force of the argument, I guess, or the article could clarify the arguable weakness of the proof... - Paul


[edit] Python version of Daisyworld

Here is a python version of daisyworld:

dynamo.py

import math

def print_sorted_keys(dict,width):
    keys = dict.keys()
    keys.sort()
    f = "%"+str(width)+"s"
    for key in keys[:-1]:
        print (f+",") % key,
    print f % keys[-1]

def print_sorted_values(dict,width):
    keys = dict.keys()
    keys.sort()
    f = "%"+str(width)+"s"
    for key in keys[:-1]:
        print (f+",") % dict[key],
    print f % dict[keys[-1]]

def run_times(initial_time,dt,times,initial,get_next_time_step):
    prev = initial

    width = 20
    f = "%"+str(width)+"s,"
    print f % "time",
    print_sorted_keys(initial,width)
    print f % initial_time,
    print_sorted_values(initial,width)
    
    for i in range(1,times+1):
        time = i*dt + initial_time
        next = get_next_time_step(prev,time)
        print f % time,
        print_sorted_values(next,width)

        prev = next
    print f % "time",
    print_sorted_keys(initial,width)


def step(value,time,currentTime):
    if currentTime >= time:
        return value
    else:
        return 0.0

def clip(after_cutoff,before,value,cutoff_value):
    if value < cutoff_value:
        return before
    else:
        return after_cutoff

def table_lookup(value,low,high,increment,list):
    if value <= low:
        return list[0]
    elif high <= value:
        return list[-1]
    else:
        trans = (value - low)/increment
        low_index = int(math.floor(trans))
        delta = trans - low_index
        return list[low_index]*(1.0-delta)+list[low_index+1]*delta
        
def smooth3_init(init_dictionary,name,value):
    init_dictionary[name+"_l1"] = value
    init_dictionary[name+"_l2"] = value
    init_dictionary[name+"_l3"] = value

def smooth3_next_levels(cur_dict, prev_dict, name, dt):
    cur_dict[name+"_l1"] = prev_dict[name+"_l1"]+dt*prev_dict[name+"_r1"]
    cur_dict[name+"_l2"] = prev_dict[name+"_l2"]+dt*prev_dict[name+"_r2"]
    cur_dict[name+"_l3"] = prev_dict[name+"_l3"]+dt*prev_dict[name+"_r3"]

def smooth3_next_rates(cur_dict, name, value, delay):
    cur_dict[name+"_r1"] = (value - cur_dict[name+"_l1"])/(delay/3.0)
    cur_dict[name+"_r2"] = (cur_dict[name+"_l1"] - cur_dict[name+"_l2"])/(delay/3.0)
    cur_dict[name+"_r3"] = (cur_dict[name+"_l2"] - cur_dict[name+"_l3"])/(delay/3.0)

def smooth3_cur_value(cur_dict, name):
    return cur_dict[name+"_l3"]
    

daisyworld.py

import math
from dynamo import *

#levels
uncovered_area = "uncovered_area"
white_area = "white_area"
black_area = "black_area"

#rates
white_growth = "white_growth"
black_growth = "black_growth"
uncovered_growth = "uncovered_growth"

#axillaries
avg_planet_temp = "avg_planet_temp"
black_growth_fact = "black_growth_fact"
white_growth_fact = "white_growth_fact"
planetary_albedo = "planetary_albedo"
temp_black_land = "temp_black_land"
temp_white_land = "temp_white_land"
t_dead_planet = "t_dead_planet"
solar_luminosity = "solar_luminosity"

#constants
black_albedo = 0.25
death_rate = 0.3
heat_absorp_fact = 20
sb_constant = 5.669e-8
solar_flux_constant = 917
uncovered_albedo = 0.5
white_albedo = 0.75

#parameters
dt = 1.0
initial_time = 0.0

#initial data
i = {}

#inital levels
i[uncovered_area] = 1.0
i[white_area] = 0.0
i[black_area] = 0.0

def calc_auxiliaries_and_rates(n,time):
    #first the auxiliaries
    #n[solar_luminosity] = 0.6+(time*(1.2/200))
    n[solar_luminosity] = 1.0-0.40*(math.sin(time/(math.pi*10)))
    n[planetary_albedo] = n[uncovered_area]*uncovered_albedo+n[black_area]*black_albedo+n[white_area]*white_albedo
    n[avg_planet_temp] = ((n[solar_luminosity]*solar_flux_constant*(1.0-n[planetary_albedo])/sb_constant)**0.25)-273
    n[temp_black_land] = heat_absorp_fact*(n[planetary_albedo]-black_albedo)+n[avg_planet_temp]
    n[temp_white_land] = heat_absorp_fact*(n[planetary_albedo]-white_albedo)+n[avg_planet_temp]
    n[t_dead_planet] = ((n[solar_luminosity]*solar_flux_constant*(1-uncovered_albedo)/sb_constant)**0.25)-273
    n[black_growth_fact] = max(0,1 - 0.03265*((22.5-n[temp_black_land])**2))
    n[white_growth_fact] = max(0,1 - 0.03265*((22.5-n[temp_white_land])**2))
    
    #then the rates

    #n[black_growth] = n[black_area]*(1 - n[black_area]/(n[uncovered_area]+n[black_area]))*n[black_growth_fact]-n[black_area]*death_rate+0.001
    #n[white_growth] = n[white_area]*(1 - n[white_area]/(n[uncovered_area]+n[white_area]))*n[white_growth_fact]-n[white_area]*death_rate+0.001
    n[white_growth] = n[white_area]*(n[uncovered_area]*n[white_growth_fact]-death_rate)+0.001
    n[black_growth] = n[black_area]*(n[uncovered_area]*n[black_growth_fact]-death_rate)+0.001
    n[uncovered_growth] = -(n[black_growth]+n[white_growth])

calc_auxiliaries_and_rates(i,initial_time)

def get_next_time_step(j,time):
    n = {}
    #nextize levers
    n[uncovered_area] = j[uncovered_area]+dt*j[uncovered_growth]
    n[black_area] = j[black_area]+dt*j[black_growth]
    n[white_area] = j[white_area]+dt*j[white_growth]

    calc_auxiliaries_and_rates(n,time)
    return n

run_times(initial_time,dt,400,i,get_next_time_step)
          

It is based off of the STELLA model in the Modeling Daisyworld article. Jrincayc 01:50, 10 Jun 2004 (UTC)

[edit] The dim and distant past

Back in the UK in 1982, the Sinclair ZX Spectrum home computer was packaged with a tape called "Horizons", which contained several demonstrations of the Sinclair Spectrum's ability to do maths and draw pictures etc. One of the demonstrations was called "Evolution (or Foxes and Rabbits)". There's a screenshot here. It simulated two populations - foxes and rabbits - over a period of time. You could set the relative population size and duration of the simulation, and over time the foxes would eat the rabbits, until there were very few rabbits, at which point the foxes would starve and the rabbits would multiply again. Over time, the two populations remained in a state of balance. Despite being called "Evolution", it had nothing at all to do with evolution.

I mention this mostly as trivia, as a relatively well-known pre-1983 computer implementation of the basic daisyworld concept. I'm sure the idea of a self-regulating system pared down to two components is ancient, and was probably first noticed by farmers, thousands of years ago. And of course this article is specifically about the daisyworld itself, rather than the general concept of self-regulating systems. Couldn't think where else to mention it.-Ashley Pomeroy 11:14, 16 August 2005 (UTC)

[edit] needs editing

1) many jargon terms. I replaced the ones with synonyms where no wiki links existed to explain. Where wiki links did explain, reading a dozen articles to understand one is really annoying. The terms should be explained in this article.
2) passive sentences. If anyone took good English classes in college (as opposed to having lousy teachers as I found many have), you should know what passive sentences are, since the wiki link does not work.
DyslexicEditor 14:30, 9 March 2006 (UTC)

[edit] Article Suggestion

This sounds really interesting, but for someone who knows little about the science behind planets (me) this article doesn't give the reader an understanding of why Daisyworld is significant. sinblox (talk) 04:23, 7 August 2006 (UTC)


[edit] A generalisation of Daisyworld

Generalising this one gets the following: Living beings are adabted to certain kind of living conditions. If they affect their own living conditions via their environment or in a way which spreads to the environment, they have to affect the environment toward what the environmental conditions have been in the past. So it is especially in extreme living conditions like with fluctuations of the environmental conditions. So, deducing from this, the biosphere has a tendency to regulate its living environment somewhat toward what is benefical for life. (If it would not do so but the opposite, those living beings would die and so drop away from the evolutions' competition.) This seems to make Lovelock's Gaia theory scientificaslly correct - without presupposing any "symbiosis" of species on our planet. Htervola 10:14, 9 November 2006 (UTC)

[edit] discussion of revert

Hi. Sorry to revert a good-faith edit. But I feel that the above text is sufficiently non-wikipedian, and confused, to merit deletion. Try to construct a formal argument, using standard scientific wording, that expresses what you are trying to say. Wiki text also needs to be NPOV, and in this case cite its sources.

Best wishes, Robinh 08:16, 9 November 2006 (UTC)


Its source is me myself - is that OK to mention or needed? I just wanted to make Lovelock's point clearer and more understandable. Which parts of the text you consider confused and how? I was using the scientifical perspective though. What exactly is Wikipedia looking for? Htervola 11:49, 9 November 2006 (UTC)

Here is another version - is this what you are looking for??? I make the points clearer but I think that such is not needed.

Generalising the Daisyworld example one gets the following: Living beings are adabted to certain kind of living conditions (to what exactly, depends on the spaecies and even on the individual (like we know from observing humans) but each to a certain kind of living conditionsa anyway). If they affect their own living conditions via their environment or in a way which spreads to the environment, they have to affect the environment toward that (i.e. toward what they are adabted to) i.e. toward what the environmental conditions have been in the past. So it is especially in extreme living conditions where it is a question of whether the living conditions are suitable for the species/individual or not. So, deducing from this, the biosphere has a tendency to regulate its living environment somewhat toward what is benefical for life. (If it would not do so but the opposite, those living beings would die and so drop away from the evolutions' competition.) This seems to make Lovelock's Gaia theory scientificaslly correct - without presupposing any "symbiosis" of species on our planet. I know that this version is too clumsy. But I think that the additions are not needed. Htervola 11:58, 9 November 2006 (UTC)



Hi.

The issue is the source of the added matreial: you say that "the source is me myself". This suggests that the addition is original research, and therefore not suitable for Wikipedia. Daisyworld itself is just a model, and cannot be "scientifically correct", whatever that means. Try getting hold of any of the many journal articles that generalize the original Daisyworld paper, to see what is out there in the literature.

best wishes, Robinh 08:15, 10 November 2006 (UTC)

[edit] About the main text

As one used to scientifical language I would describe also the Daisyworld example differently: Daisyworld is an example about how life on a planet can control its climate. It is a computer simulation introduced at 19XX by Lovelock & ?? . The idea in it is the following. There are dark and light plants (daisies) dominating on a (hypothetical) planet: the dark flourishing in cold because of their colour and the light ones in a hot environment. So the equator would be covered by white plants and the poles by dark ones. If the temperature of the planet changes toward higher, the light plants start to dominate and because they reflect light toward space, the temperature does not rise as high as it would have otherwise risen. Similarly the domination of dark plants in cold rises the temperature of the planet. I consider my own version clearer. Htervola 12:15, 9 November 2006 (UTC)

[edit] Removing memetics category

I am removing the memetics category from this article since you learn no more about the article's contents from the category and v.v. Since so many things may be memes we should try to keep the category closely defined in order to remain useful. Hope you're okay with that. The link to meme would be enough I suggest. Facius 11:13, 23 July 2007 (UTC)