Land division and Jubilee

No preview image

1 collaborator



Tagged by Erel Segal Halevi about 12 years ago


Tagged by Erel Segal Halevi about 12 years ago


Tagged by Erel Segal Halevi about 12 years ago


Tagged by Erel Segal Halevi about 12 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0 • Viewed 382 times • Downloaded 33 times • Run 0 times
Download the 'Land division and Jubilee' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Freedom, in Biblical economy, means that every citizen owns a land-plot. Originally, this was achieved by two means:

  • Initially, all land was divided into equal plots, and each citizen got a plot;
  • Once in 50 years, in the year of Jubilee, all lands returned to the original owners.

This model checks whether it is possible to achieve the goal of Freedom (meaning, every citizen owns a land) even when the initial division is not equal.


There is an equal number of citizens and land-plots, defined by the num-citizens slider.

Initially, land is divided randomly - each land is given to one of the citizens, picked at random. This means that some citizens will have no land, while others will have many plots.

At each period, each land has some probability of being sold: the probability-of-deal-per-period slider. If a land is sold, it is transferred to a citizen picked at random.

After 50 periods (or a different number, set by the periods-per-jubilee slider), a Jubilee procedure is performed, as defined by the jubilee-procedure menu. There are 3 options:

  • no-jubilee - nothing is done;
  • jubilee-for-landless - each citizen with no land picks one of the lands that he had in the previous Jubilee (if any), and gets it back.
  • jubilee-for-all - each citizen gets all lands that he had in the previous Jubilee.

Then the trade goes on as before.


Choose the number of citizens, the probability of deal per period, the number of periods per Jubilee, and the Jubilee procedure. Then click setup.

Pressing the go once button will run a single period. Some lands will be sold to new owners. A directed link points from the original ownersto the new owner. The color of the land will change to that of the new owner.

The land distribution is shown in the "land distribution" histogram and the "landless" plot.

As the model runs, there are more and more links. But at the Jubilee year, some or all lands return to their original owner, so some or all links are removed.

The number of deals canceled is shown in the "deals canceled" plot.


When the Jubilee procedure is "jubilee-for-landless", the number of landless citizens decreases in each Jubilee, relative to the previous Jubilee. Over time, all citizens will have land. The land distribution approaches the state of a single land per citizen.

This does not happen for "no-jubilee" or for "jubilee-for-all".


How many Jubilees it takes until each citizen has a land?

How does the answer depends on the probability-of-deal?

How does the number of deals canceled change, as more and more citizens have land?

If originally ALL citizens have land, is it still possible that some deals will NOT be canceled in the Jubilee year? What is required for this to happen? (hint: look for cycles in the graph at period 0).


Right now the probability of any land being sold is identical. Can you think of more realistic models?

Perhaps the model should also include wealth; wealthy citizens are more likely to buy lands, while poor citizens are more likely to sell lands.

Perhaps the model should also include subjective prerefences: some citizens prefer to live in the east, while others prefer to live in the west. etc.


Citizens are turtles. Land-plots are patches. However, since there are usually more patches then turtles, only some of the patches are considered for the model. They are called "land-patches" in the code, and are colored in the same color as their current owner.

Links are used to link the original owner of a land with its current owner. A cycle, in that graph, means that the relevant owners switched their lands.


If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Segal-Halevi, Erel (2012). NetLogo Land-Random model.
  • Wilensky, U. (1999). NetLogo. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.


Copyright 2012 Erel Segal-Halevi.

CC BY-SA 3.0

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [
  land-patches            ;; a subset of all patches, that we consider to be land-plots
  num-of-deals-made       ;; counts the number of land deals done so far in the current period
  num-of-deals-canceled   ;; counts the number of land deals canceled so far in the current Jubilee
  period-past-jubilee     ;; number of period, relative to the previous jubilee

turtles-own [
  lands      ;; list of lands (=patches) owned by this turtle

patches-own [
  owner           ;; citizen (=turtle) that ownes this land.  
  original-owner  ;; citizen (=turtle) that owned this land at the beginning of the current Jubilee cycle.

;;; Setup Procedures ;;;

to setup
  set-default-shape turtles "person"
  create-turtles num-citizens [
    set lands []
    set color (10 * random 10 + 4)  ;; citizens have dark colors.
  ask patches [
    set owner nobody  
    set original-owner nobody
  set land-patches n-of num-citizens patches


  ask turtles with [length lands = 0] [
    let land-with-no-owner one-of patches with [owner = nobody]
    setxy [pxcor] of land-with-no-owner [pycor] of land-with-no-owner

  ask turtles with [length lands > 0] [
    let my-land one-of lands
    setxy [pxcor] of my-land [pycor] of my-land


  set period-past-jubilee 0


;;; Main Procedure ;;;

to go
  if period-past-jubilee = 0 [
    ;; initialize the land records at the start of the next period:
    ask land-patches [
      set original-owner owner
      ask original-owner [ 
        setxy [pxcor] of myself [pycor] of myself 
    ask links [die]
    set num-of-deals-made 0
    set num-of-deals-canceled 0

  set period-past-jubilee period-past-jubilee + 1

  if period-past-jubilee >= periods-per-jubilee [
    ;; in the Jubilee year, some lands return to original owners:
    run jubilee-procedure
    set period-past-jubilee 0

;;; Land division procedures ;;;

to random-land-division
  ask land-patches [
    assign-land self one-of turtles

to citizens-trade-lands
  ask land-patches [
    if random 100 < probability-of-deal-per-period [
      sell-land self one-of turtles

to sell-land [the-land new-owner]
  assign-land the-land new-owner
  set num-of-deals-made num-of-deals-made + 1

to return-land [the-land new-owner]
  assign-land the-land new-owner
  set num-of-deals-canceled num-of-deals-canceled + 1

;; Assign the given land (=patch) to the given owner (=turtle): 

to assign-land [the-land new-owner]
  let current-owner  [owner] of the-land
  if current-owner = new-owner [stop]
  if current-owner != nobody [
    ask current-owner [
      set lands remove the-land lands

  ask the-land [
    set owner new-owner
    if original-owner != nobody [
      ask original-owner [
        if out-link-to current-owner != nobody [
           ask out-link-to current-owner [die]
        if self != new-owner [       ;; cannot create a link from turtle to itself
          create-link-to new-owner
    set pcolor [color + 2] of new-owner  ;; lands have lighter colors.

  ask new-owner [
    if not member? the-land lands [
      set lands lput the-land lands

;;; Jubilee procedures       ;;;

to no-jubilee

to jubilee-for-landless
  let landless-citizens turtles with [empty? lands]
  let change? false
  ask landless-citizens [
    let returned-land  ;; to each landless citizen, return one of the lands he originally owned:
        one-of land-patches with [original-owner = myself]
    if returned-land != nobody [
      return-land returned-land self
      set change? true
  ;; if anything was changed in this iteration, do it again:
  if change? [jubilee-for-landless]

to jubilee-for-all
  ask turtles [
    let returned-lands 
        land-patches with [original-owner = myself and owner != myself]
    ;; show returned-lands
    ask returned-lands [
        return-land self myself

;;; Layout ;;;

to layout
  if not layout? [ stop ]
  ;; the number 10 here is arbitrary; more repetitions slows down the
  ;; model, but too few gives poor layouts
  repeat 10 [
    display  ;; so we get smooth animation

to do-layout
  layout-spring (turtles) links 0.4 6 1
  ;; layout-circle turtles max-pxcor - 1

; Copyright 2005 Uri Wilensky.
; See Info tab for full copyright and license.

There are 2 versions of this model.

Uploaded by When Description Download
Erel Segal Halevi about 12 years ago Ö»Change initial values Download this version
Erel Segal Halevi about 12 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.