• Home
  • About Us
  • Contact Us
  • Disclaimer
  • Privacy Policy
Monday, June 23, 2025
newsaiworld
  • Home
  • Artificial Intelligence
  • ChatGPT
  • Data Science
  • Machine Learning
  • Crypto Coins
  • Contact Us
No Result
View All Result
  • Home
  • Artificial Intelligence
  • ChatGPT
  • Data Science
  • Machine Learning
  • Crypto Coins
  • Contact Us
No Result
View All Result
Morning News
No Result
View All Result
Home Artificial Intelligence

Information Science at Dwelling: Fixing the Nanny Schedule Puzzle with Monte Carlo and Genetic Algorithms | by Courtney Perigo | Sep, 2024

Admin by Admin
September 9, 2024
in Artificial Intelligence
0
0qehbc9qy6hcy Dtb.jpeg
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter

READ ALSO

Can We Use Chess to Predict Soccer?

Animating Linear Transformations with Quiver


Armed with simulation of all of the attainable methods our schedule can throw curveballs at us, I knew it was time to usher in some heavy-hitting optimization methods. Enter genetic algorithms — a pure selection-inspired optimization methodology that finds the very best answer by iteratively evolving a inhabitants of candidate options.

Picture by Sangharsh Lohakare on Unsplash

On this case, every “candidate” was a possible set of nanny traits, akin to their availability and suppleness. The algorithm evaluates totally different nanny traits, and iteratively improves these traits to seek out the one that matches our household’s wants. The outcome? A extremely optimized nanny with scheduling preferences that stability our parental protection gaps with the nanny’s availability.

On the coronary heart of this strategy is what I prefer to name the “nanny chromosome.” In genetic algorithm phrases, a chromosome is just a technique to symbolize potential options — in our case, totally different nanny traits. Every “nanny chromosome” had a set of options that outlined their schedule: the variety of days per week the nanny may work, the utmost hours she may cowl in a day, and their flexibility to regulate to various begin instances. These options have been the constructing blocks of each potential nanny schedule the algorithm would think about.

Defining the Nanny Chromosome

In genetic algorithms, a “chromosome” represents a attainable answer, and on this case, it’s a set of options defining a nanny’s schedule. Right here’s how we outline a nanny’s traits:

# Perform to generate nanny traits
def generate_nanny_characteristics():
return {
'versatile': np.random.alternative([True, False]), # Nanny's flexibility
'days_per_week': np.random.alternative([3, 4, 5]), # Days obtainable per week
'hours_per_day': np.random.alternative([6, 7, 8, 9, 10, 11, 12]) # Hours obtainable per day
}

Every nanny’s schedule is outlined by their flexibility (whether or not they can modify begin instances), the variety of days they’re obtainable per week, and the utmost hours they will work per day. This offers the algorithm the pliability to guage all kinds of potential schedules.

Constructing the Schedule for Every Nanny

As soon as the nanny’s traits are outlined, we have to generate a weekly schedule that matches these constraints:

# Perform to calculate a weekly schedule primarily based on nanny's traits
def calculate_nanny_schedule(traits, num_days=5):
shifts = []
for _ in vary(num_days):
start_hour = np.random.randint(6, 12) if traits['flexible'] else 9 # Versatile nannies have various begin instances
end_hour = start_hour + traits['hours_per_day'] # Calculate finish hour primarily based on hours per day
shifts.append((start_hour, end_hour))
return shifts # Return the generated weekly schedule

This perform builds a nanny’s schedule primarily based on their outlined flexibility and dealing hours. Versatile nannies can begin between 6 AM and 12 PM, whereas others have fastened schedules that begin and finish at set instances. This permits the algorithm to guage a spread of attainable weekly schedules.

Choosing the Finest Candidates

As soon as we’ve generated an preliminary inhabitants of nanny schedules, we use a health perform to guage which of them finest meet our childcare wants. Essentially the most match schedules are chosen to maneuver on to the subsequent era:

# Perform for choice in genetic algorithm
def choice(inhabitants, fitness_scores, num_parents):
# Normalize health scores and choose dad and mom primarily based on likelihood
min_fitness = np.min(fitness_scores)
if min_fitness < 0:
fitness_scores = fitness_scores - min_fitness

fitness_scores_sum = np.sum(fitness_scores)
chances = fitness_scores / fitness_scores_sum if fitness_scores_sum != 0 else np.ones(len(fitness_scores)) / len(fitness_scores)

# Choose dad and mom primarily based on their health scores
selected_parents = np.random.alternative(inhabitants, dimension=num_parents, p=chances)
return selected_parents

Within the choice step, the algorithm evaluates the inhabitants of nanny schedules utilizing a health perform that measures how nicely the nanny’s availability aligns with the household’s wants. Essentially the most match schedules, those who finest cowl the required hours, are chosen to turn into “dad and mom” for the subsequent era.

Including Mutation to Maintain Issues Attention-grabbing

To keep away from getting caught in suboptimal options, we add a little bit of randomness by mutation. This permits the algorithm to discover new potentialities by sometimes tweaking the nanny’s schedule:

# Perform to mutate nanny traits
def mutate_characteristics(traits, mutation_rate=0.1):
if np.random.rand() < mutation_rate:
traits['flexible'] = not traits['flexible']
if np.random.rand() < mutation_rate:
traits['days_per_week'] = np.random.alternative([3, 4, 5])
if np.random.rand() < mutation_rate:
traits['hours_per_day'] = np.random.alternative([6, 7, 8, 9, 10, 11, 12])
return traits

By introducing small mutations, the algorithm is ready to discover new schedules which may not have been thought of in any other case. This range is vital for avoiding native optima and enhancing the answer over a number of generations.

Evolving Towards the Excellent Schedule

The ultimate step was evolution. With choice and mutation in place, the genetic algorithm iterates over a number of generations, evolving higher nanny schedules with every spherical. Right here’s how we implement the evolution course of:

# Perform to evolve nanny traits over a number of generations
def evolve_nanny_characteristics(all_childcare_weeks, population_size=1000, num_generations=10):
inhabitants = [generate_nanny_characteristics() for _ in range(population_size)] # Initialize the inhabitants

for era in vary(num_generations):
print(f"n--- Era {era + 1} ---")

fitness_scores = []
hours_worked_collection = []

for traits in inhabitants:
fitness_score, yearly_hours_worked = fitness_function_yearly(traits, all_childcare_weeks)
fitness_scores.append(fitness_score)
hours_worked_collection.append(yearly_hours_worked)

fitness_scores = np.array(fitness_scores)

# Discover and retailer the very best particular person of this era
max_fitness_idx = np.argmax(fitness_scores)
best_nanny = inhabitants[max_fitness_idx]
best_nanny['actual_hours_worked'] = hours_worked_collection[max_fitness_idx]

# Choose dad and mom and generate a brand new inhabitants
dad and mom = choice(inhabitants, fitness_scores, num_parents=population_size // 2)
new_population = []
for i in vary(0, len(dad and mom), 2):
parent_1, parent_2 = dad and mom[i], dad and mom[i + 1]
little one = {
'versatile': np.random.alternative([parent_1['flexible'], parent_2['flexible']]),
'days_per_week': np.random.alternative([parent_1['days_per_week'], parent_2['days_per_week']]),
'hours_per_day': np.random.alternative([parent_1['hours_per_day'], parent_2['hours_per_day']])
}
little one = mutate_characteristics(little one)
new_population.append(little one)

inhabitants = new_population # Substitute the inhabitants with the brand new era

return best_nanny # Return the very best nanny in any case generations

Right here, the algorithm evolves over a number of generations, selecting the right nanny schedules primarily based on their health scores and permitting new options to emerge by mutation. After a number of generations, the algorithm converges on the absolute best nanny schedule, optimizing protection for our household.

Ultimate Ideas

With this strategy, we utilized genetic algorithms to iteratively enhance nanny schedules, guaranteeing that the chosen schedule may deal with the chaos of Mum or dad 2’s unpredictable work shifts whereas balancing our household’s wants. Genetic algorithms might have been overkill for the duty, however they allowed us to discover varied potentialities and optimize the answer over time.

The pictures beneath describe the evolution of nanny health scores over time. The algorithm was in a position to shortly converge on the very best nanny chromosome after only a few generations.

Picture Particular from Writer
Picture Particular from Writer
Tags: AlgorithmsCarloCourtneyDataGeneticHomeMonteNannyPerigoPuzzleScheduleScienceSepSolving

Related Posts

Image 43 1024x683.png
Artificial Intelligence

Can We Use Chess to Predict Soccer?

June 23, 2025
Svd with 4 vectors.gif
Artificial Intelligence

Animating Linear Transformations with Quiver

June 22, 2025
Greg rakozy ompaz dn 9i unsplash scaled 1.jpg
Artificial Intelligence

From Configuration to Orchestration: Constructing an ETL Workflow with AWS Is No Longer a Battle

June 22, 2025
Chatgpt image jun 15 2025 08 46 04 pm.jpg
Artificial Intelligence

LLM-as-a-Choose: A Sensible Information | In direction of Information Science

June 21, 2025
Pexels n voitkevich 7172774 scaled 1.jpg
Artificial Intelligence

Understanding Software Efficiency with Roofline Modeling

June 20, 2025
Cover image.jpg
Artificial Intelligence

Past Mannequin Stacking: The Structure Ideas That Make Multimodal AI Methods Work

June 20, 2025
Next Post
Securities Exchange Commission.jpg

File $4.68 billion fines mark SEC's hardest yr on crypto

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

POPULAR NEWS

0 3.png

College endowments be a part of crypto rush, boosting meme cash like Meme Index

February 10, 2025
Gemini 2.0 Fash Vs Gpt 4o.webp.webp

Gemini 2.0 Flash vs GPT 4o: Which is Higher?

January 19, 2025
1da3lz S3h Cujupuolbtvw.png

Scaling Statistics: Incremental Customary Deviation in SQL with dbt | by Yuval Gorchover | Jan, 2025

January 2, 2025
How To Maintain Data Quality In The Supply Chain Feature.jpg

Find out how to Preserve Knowledge High quality within the Provide Chain

September 8, 2024
0khns0 Djocjfzxyr.jpeg

Constructing Data Graphs with LLM Graph Transformer | by Tomaz Bratanic | Nov, 2024

November 5, 2024

EDITOR'S PICK

Image Fx 27.png

How KPI Software program Options Drive Enterprise Success

February 21, 2025
Bitcoin20mining Id 20db8252 F646 459a 8327 5452a756d03f Size900.jpg

SEC Clarifies Crypto Mining Guidelines: Proof-of-Work Doesn’t Violate Securities Legislation

March 21, 2025
1sef806mq0ju8zbpfq2 Pla.png

Introducing NumPy, Half 2: Indexing Arrays | by Lee Vaughan | Sep, 2024

September 12, 2024
Image 215.png

Information Drift Is Not the Precise Drawback: Your Monitoring Technique Is

June 4, 2025

About Us

Welcome to News AI World, your go-to source for the latest in artificial intelligence news and developments. Our mission is to deliver comprehensive and insightful coverage of the rapidly evolving AI landscape, keeping you informed about breakthroughs, trends, and the transformative impact of AI technologies across industries.

Categories

  • Artificial Intelligence
  • ChatGPT
  • Crypto Coins
  • Data Science
  • Machine Learning

Recent Posts

  • Technique Acquires $26 Million Price of BTC
  • Can We Use Chess to Predict Soccer?
  • A Multi-Agent SQL Assistant You Can Belief with Human-in-Loop Checkpoint & LLM Value Management
  • Home
  • About Us
  • Contact Us
  • Disclaimer
  • Privacy Policy

© 2024 Newsaiworld.com. All rights reserved.

No Result
View All Result
  • Home
  • Artificial Intelligence
  • ChatGPT
  • Data Science
  • Machine Learning
  • Crypto Coins
  • Contact Us

© 2024 Newsaiworld.com. All rights reserved.

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?