Optimizing Lake Sheep Farm Space and Boosting Annual Lamb Production
This article presents an operations‑research model for a Lake Sheep farm, detailing how to determine ram and ewe numbers, estimate annual lamb output, address space‑utilization gaps, and incorporate uncertainty through Monte‑Carlo simulation to devise flexible, loss‑minimizing production plans.
Problem Background
Large‑scale intensive sheep farms group animals by gender and growth stage to meet space requirements, aiming to ensure health, safety, and efficient use of space. The Lake Sheep, a nationally protected breed, is bred by natural mating and goes through breeding and fattening phases. Standard pens hold a number of sheep depending on sex, size, and stage, so a clear production plan is needed to optimize space utilization.
Problem Restatement
Given parameters, determine the required number of rams and base ewes and estimate the annual lamb output. If the target is 1,500 lambs per year, calculate the shortfall in pen count.
Based on problem 1, devise a concrete production plan for 112 standard pens to maximize annual lamb output.
Considering uncertainties such as conception rate and lamb mortality, create a flexible plan that minimizes total loss from empty or rented pens.
This is a typical optimization problem involving resource allocation, forecasting, and uncertainty.
Problem 1
Parameters (days):
Natural mating period
Gestation period
Lactation period
Fattening period
Rest period for ewes
Number of standard pens
Using a 1:50 ram‑to‑ewe ratio, we calculate the number of rams and ewes, estimate the number of lambs each ewe can produce in two years, and then estimate the annual lamb output range. The optimization model is:
Decision variables: number of rams, number of base ewes.
Objective: maximize annual lamb output based on the assumption that each ewe produces 3 litters in two years, each litter averaging 2 lambs.
<code># Define parameters
T_jiaopei = 20 # natural mating period
T_yunqi = 149 # gestation period
T_buru = 40 # lactation period
T_yufei = 210 # lamb fattening period
T_xiuzhen = 20 # ewe rest period
N_yanglan = 112 # number of standard pens
# Total cycle length
T_total = T_jiaopei + T_yunqi + T_buru + T_yufei + T_xiuzhen
# Lambs per ewe in two years (730 days)
cycles_per_2_years = 730 / T_total
lambs_per_ewe_2_years = cycles_per_2_years * 2
# Ram‑to‑ewe ratio 1:50 (14 ewes per ram per pen)
ewes_per_ram = 14
max_rams = N_yanglan // (1 + ewes_per_ram)
max_ewes = max_rams * ewes_per_ram
# Lambs per ewe per year
lambs_per_ewe_per_year = lambs_per_ewe_2_years / 2
# Annual lamb output range (including rams)
annual_lambs_range = (lambs_per_ewe_per_year * max_ewes,
lambs_per_ewe_per_year * max_ewes + max_rams)
annual_lambs_range
</code>Result: Approximately 7 rams and 98 ewes should be kept, giving an estimated annual lamb output of 163–170 lambs.
To reach at least 1,500 lambs per year, we reverse‑calculate the required resources:
<code># Target annual lamb output
target_annual_lambs = 1500
# Required ewes
required_ewes = target_annual_lambs / lambs_per_ewe_per_year
# Required rams (1:50 ratio)
required_rams = required_ewes / ewes_per_ram
# Pens needed for rams and ewes
required_yanglan_for_rams = required_rams
required_yanglan_for_ewes = required_ewes / ewes_per_ram
total_required_yanglan = required_yanglan_for_rams + required_yanglan_for_ewes
# Pen shortfall
yanglan_gap = total_required_yanglan - N_yanglan
required_ewes, required_rams, total_required_yanglan, yanglan_gap
</code>Result: About 64 rams and 902 ewes are needed, requiring roughly 129 pens—17 more than the existing 112 pens.
Problem 2
For the 112 pens, the production plan aims to maximize annual lamb output by:
Setting ram and ewe numbers based on problem 1.
Scheduling mating times and quantities.
Allocating pens for each growth stage.
Estimating the resulting annual lamb output.
The mathematical model mirrors problem 1 with the same decision variables and objective, adding the constraint that each pen can hold 1 ram and up to 14 ewes during the mating period.
<code># Compute rams and ewes at start of mating period
rams_at_start = N_yanglan // (1 + ewes_per_ram)
ewes_at_start = rams_at_start * ewes_per_ram
# Pen requirements for later stages
yanglan_required_for_pregnant_ewes = ewes_at_start / 8 # max 8 pregnant ewes per pen
yanglan_required_for_lactating_ewes = ewes_at_start / 6 # max 6 lactating ewes + lambs per pen
yanglan_required_for_weaned_lambs = 2 * ewes_at_start / 14 # max 14 weaned lambs per pen
yanglan_required_for_resting_ewes = ewes_at_start / 14 # max 14 ewes per pen during rest
# Lambs produced per cycle
lambs_out_per_cycle = 2 * ewes_at_start
annual_lambs_out = (365 / T_total) * lambs_out_per_cycle
rams_at_start, ewes_at_start, annual_lambs_out
</code>With 7 rams and 98 ewes, the estimated annual lamb output is about 163 lambs.
Problem 3
To handle uncertainties (85% conception rate, gestation 147‑150 days, average 2.2 lambs per ewe, 3% lamb mortality, variable lactation period), a Monte‑Carlo simulation is employed.
<code>import random
# Uncertainty parameters
conception_rate = 0.85
gestation_period_range = (147, 150)
avg_lambs_per_ewe = 2.2
lamb_mortality_rate = 0.03
lactation_period_range = (35, 45)
# Simulation for a single ewe
def simulate_ewe():
if random.random() < conception_rate:
conceived = True
gestation_period = random.randint(*gestation_period_range)
lambs = 2
lamb_prob = random.random()
if lamb_prob < 0.1:
lambs = 1
elif lamb_prob > 0.9:
lambs = 3
if random.random() < lamb_mortality_rate:
lambs -= 1
else:
conceived = False
gestation_period = 0
lambs = 0
lactation_period = random.randint(*lactation_period_range)
return conceived, gestation_period, lambs, lactation_period
# Simulate all ewes
results = [simulate_ewe() for _ in range(ewes_at_start)]
# Analyze results
conceived_ewes = sum(1 for r in results if r[0])
total_gestation_days = sum(r[1] for r in results)
total_lambs = sum(r[2] for r in results)
avg_lactation_days = sum(r[3] for r in results) / len(results) if results else 0
conceived_ewes, total_gestation_days, total_lambs, avg_lactation_days
</code>Simulation outcome: 86 ewes conceived, total gestation days 12,773, producing 178 lambs, with an average lactation of 39.5 days.
Using these results, the total pen demand is about 45.65 pens; with 112 pens available, many remain idle, causing an estimated loss of 66.35 (assuming a loss of 1 per empty pen per day). Adjusting ewe numbers or mating frequency can reduce this loss, but multiple simulation iterations are needed to find the optimal plan.
In summary, the article builds an optimization model for a Lake Sheep farm, determines appropriate ram and ewe numbers, estimates annual lamb output, and incorporates uncertainty through Monte‑Carlo simulation to guide flexible, loss‑minimizing production planning.
Model Perspective
Insights, knowledge, and enjoyment from a mathematical modeling researcher and educator. Hosted by Haihua Wang, a modeling instructor and author of "Clever Use of Chat for Mathematical Modeling", "Modeling: The Mathematics of Thinking", "Mathematical Modeling Practice: A Hands‑On Guide to Competitions", and co‑author of "Mathematical Modeling: Teaching Design and Cases".
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.