Prospective
Le souffle du vent.
Dans l’antre insondable de l’incertitude, là où l’obscurité du temps dévore les âmes humaines comme un abîme sans fond, les hommes, tels des insectes égarés dans un monde de brume et de mystères, s’efforçaient de percer le voile impénétrable du futur. Le regard perdu sur les parois de la caverne, les ombres dessinées par la flamme hésitante d'une lampe à huile, notre sort en fut jeté. Comment donc ? Pourquoi ?
Jadis, dans ce même chaos, se dressait l'oracle de Delphes, antique gardien de secrets et de songes, sublime et énigmatique. « Connais-toi toi-même, et tu connaîtras l'univers et les dieux », murmurait la Pythie, sa voix s’échappant des profondeurs du sanctuaire comme un écho d’une époque révolue, résonnant à travers les siècles comme un souffle fragile de sagesse. Les hommes, affamés de vérités immuables, se pressaient à ses pieds, cherchant dans ses mots divins la clarté d’une lumière qu’ils ne parvenaient pas à concevoir, tels des enfants quémandant à une mère éthérée des réponses à leurs craintes existentielles.
« L'Incrédulité de saint Thomas », Le Caravage, vers 1603, huile sur toile, 107 × 146 cm, Palais de Sanssouci, Potsdam.
Mais les temps, inéluctablement, avaient changé. L'oracle de Delphes et Nostradamus n'étaient plus que des chimères flottantes au firmament de l’indicible, un murmure dans le vent, et à sa place s’élevaient d’autres figures, tout aussi mystérieuses, mais bien plus éphémères, tout aussi suspectes, mais d'une vérité plus fragile. Madame Soleil, avec ses cartes fripées et ses cristaux ternis par la poussière des promesses brisées, prétendait ouvrir les portes du temps.
« Le futur est un livre ouvert pour ceux qui savent lire entre les lignes… »
…disait-elle, ses yeux brillants d’une lueur étrange, mi-mysticisme, mi-cupidité. Et autour d'elle, outre les tas de billets racornis récoltés auprès de naïfs contributeurs, les âmes perdues se pressaient, avides de déchiffrer l’invisible, prêtes à avaler toutes les nouveautés qui leur permettraient de fuir l’angoisse de l'inconnu, la misère de Jean-Louis Chotard et Gérard Grandjean, comme des naufragés cherchant un phare qui ne brille jamais et finissant leur course sur les récifs de l’ignorance crasse. L'Amoco Cadiz de la prédiction. Olé ! Castagnettas a matar los goélandos !
Madame Irma, quant à elle, se tournait vers les ombres les plus sombres. La nécromancie, art ancien de converser avec les âmes des défunts, était son domaine sacré. « Les morts savent des choses que les vivants ignorent », murmurait-elle dans une langue qui semblait naître des pierres elles-mêmes, ses mains frémissantes dessinant des cercles de mystère sur des tables poussiéreuses qui tournaient sans arrêt grâce à des roulettes astucieuses. Les esprits, disait-elle, portaient les clefs du futur. « La mort n'est qu’un passage, et ceux qui l’ont franchi voient ce que les vivants ne peuvent qu’entrevoir dans leurs songes », citait-elle, invoquant les paroles du vieux Paracelse, comme si les défunts avaient autre chose à offrir que de simples vérités aux préoccupations humaines futiles. Toc toc ? Esprit es-tu là ? Oui, selon le montant de ta contribution je peux rester presque indéfiniment…pas du tout.
Mais dans cette quête insatiable du futur, l’ombre de la dangerosité se faufilait. Les charlatans se multipliaient comme des ténèbres dissimulées sous un masque de lumière. Le conseil. La valeur du conseil. La qualité du conseil. Faites-ceci, faites cela…Les conseilleurs ne sont pas les payeurs…(bon sens paysan, criblé de dettes). La secte du Temple Solaire, par exemple, avec ses rituels macabres et ses visions apocalyptiques, promettait l'illumination par le feu purificateur. « La fin des temps est proche, et seuls les purs seront sauvés », proclamaient-ils avec ferveur, des yeux brillants de fanatisme. Ils croyaient en une résurrection à travers la destruction, comme si le feu pouvait transfigurer l’âme fatiguée de l’existence. Pour eux, la fin était un commencement, et dans les cendres de ce monde, une nouvelle ère pourrait surgir, pure et éclatante. Surtout pour les dirigeants incestueux partouzeurs amateurs de joies enfantines sociabilisantes eux-mêmes, les poches pleines des picaillons d’incrédules suicidaires s’autodafants le cerveau pour la postérité. Horreur.
La secte Moon, quant à elle, prônait une approche plus douce, mais tout aussi implacable dans sa foi. « La lune est notre guide, et à travers elle, nous voyons l’avenir », chantaient-ils, les yeux tournés vers le ciel sans fin, comme si le disque argenté dansait de promesses non tenues. Ils croyaient en une harmonie cosmique, une communion secrète avec les forces invisibles de l’univers, comme si la lune, dans sa froideur éclatante, murmurait des secrets qu’eux seuls pouvaient entendre. Leurs chants, portés par le vent, étaient des supplications adressées à une divinité lointaine et insaisissable. Il ne faut pas être devin, pour comprendre qu’en parlant avec force de la lune on finit par en avoir plein le cul croissant. Les ferments de la haine de l’autre, dans les astres la rédemption.
Parallèlement, la prospective, discipline humaine et rationnelle, s'efforçait de donner une illusion d'ordre à cette quête effervescente. « La prospective n’est pas une prédiction, mais une exploration des futurs possibles », expliquait Gaston Berger, pionnier de ce domaine intellectuel parfois durement décrié. Ses outils, tels des boussoles du futur, consistaient en modèles mathématiques, scénarios et analyses de tendances. « Nous ne pouvons pas prédire l’avenir, mais nous pouvons en anticiper les contours », soulignait-il, comme si l’avenir, plutôt que d’être un mystère à révéler, était un adversaire à apprivoiser, un champ de bataille où la raison, et non la divination, offrirait sa victoire fragile.
– ℹ Monsieur Baba Très Fort Amour perdu Désenvoûtement ?
La prospective est une discipline qui consiste à anticiper et à analyser les futurs possibles en s’appuyant sur des méthodes et des outils permettant d’étudier les évolutions des sociétés, des technologies, de l’économie et des comportements humains. Lorsqu’on parle de la trajectoire de vie d’un individu, il s’agit de comprendre comment différents facteurs influencent le parcours d’une personne à travers les âges, les événements marquants, et les choix qu’elle fera.
Étapes et méthodologies
- Collecte de données sur l'individu et son environnement.
- Utilisation de scénarios prospectifs.
- Méthodes quantitatives et qualitatives.
- Analyse des choix et des décisions.
- Prise en compte des dimensions psychologiques et sociales.
- Simulation des trajectoires à long terme.
- Évaluation des impacts des grandes tendances sociales et économiques.
Exemple pratique :
Voici une simulation de trajectoire de vie pour un individu. Les facteurs perturbateurs sont intégrés à une analyse multidimensionnelle. Les résultats couvrent 1500 scenarii différents qui sont autant de variations d'une même série. Imaginons un individu en 2025, âgé de 25 ans. Pour modéliser sa trajectoire de vie jusqu'à 65 ans :
Rassembler des données : situation actuelle, niveau d'éducation, situation familiale, conditions économiques.
Scénarios futurs : Imaginer plusieurs scénarios (réussite professionnelle, reconversion, crise sanitaire, changement de pays).
Choix et décisions : Intégrer des arbres de décision pour analyser les moments où cet individu devra faire des choix importants (changement de carrière, choix de se marier, déménagement, etc.).
Impact des tendances sociales : Prendre en compte les évolutions économiques et technologiques (par exemple, la montée de l'automatisation, les impacts environnementaux).
Nous modéliserons cette courte étude sans prétention avec une méthode stochastique codée en python.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy import stats
import seaborn as sns
from datetime import datetime
import random
# Configuration matplotlib améliorée
plt.rcParams['figure.figsize'] = [18, 14]
plt.rcParams['font.size'] = 10
plt.rcParams['axes.titlesize'] = 12
plt.rcParams['axes.labelsize'] = 10
sns.set_palette("Set2")
def simulate_life_granular(params, T, dt, num_simulations, start_age=25):
"""
Simule la trajectoire de vie avec une granularité élevée d'événements perturbateurs
"""
num_steps = int(T / dt)
time_points = np.linspace(start_age, start_age + T, num_steps)
# Initialisation des matrices pour toutes les sous-dimensions
trajectories = {}
for main_dim, sub_dims in params.items():
for sub_dim in sub_dims.keys():
trajectories[f"{main_dim}_{sub_dim}"] = np.zeros((num_simulations, num_steps))
# Matrice de corrélation complexe entre sous-dimensions
all_dimensions = [f"{main}_{sub}" for main, subs in params.items() for sub in subs.keys()]
correlation_matrix = generate_correlation_matrix(all_dimensions)
for i in range(num_simulations):
# Valeurs initiales
current_values = {}
for main_dim, sub_dims in params.items():
for sub_dim, param in sub_dims.items():
base_value = param['S0']
variation = np.random.normal(0, base_value * 0.15)
current_values[f"{main_dim}_{sub_dim}"] = max(param.get('min_val', 0),
min(param.get('max_val', 100),
base_value + variation))
# Profil de vulnérabilité personnalisé
vulnerability_profile = generate_vulnerability_profile()
# Historique des événements pour effets cumulatifs
event_history = []
# États persistants (addictions, maladies chroniques, etc.)
persistent_states = initialize_persistent_states()
for t in range(num_steps):
current_age = start_age + t * dt
# Génération d'événements perturbateurs
new_events = generate_disruptive_events(current_age, vulnerability_profile,
persistent_states, current_values, dt)
event_history.extend(new_events)
# Application des événements actifs
active_effects = calculate_active_effects(event_history, t, current_age, persistent_states)
# Effets de l'âge
age_effects = calculate_detailed_age_effects(current_age, all_dimensions)
# Effets de classe sociale (basés sur revenus et éducation)
social_class_effects = calculate_social_class_effects(current_values, current_age)
# Génération de chocs corrélés
random_shocks = np.random.multivariate_normal(
[0] * len(all_dimensions),
correlation_matrix * dt
)
# Mise à jour de chaque sous-dimension
for j, full_dim in enumerate(all_dimensions):
main_dim, sub_dim = full_dim.split('_', 1)
param = params[main_dim][sub_dim]
# Calcul des effets combinés
base_drift = param['mu']
age_factor = age_effects.get(full_dim, 1.0)
event_factor = active_effects.get(full_dim, 1.0)
social_factor = social_class_effects.get(full_dim, 1.0)
shock = random_shocks[j] * param['sigma']
# Application selon le type de modèle
if param['type'] == 'multiplicative':
drift = base_drift * age_factor * event_factor * social_factor
change = current_values[full_dim] * (drift * dt + shock)
else: # additif
drift = base_drift * age_factor * event_factor * social_factor
change = drift * dt + shock
# Mise à jour avec contraintes
new_value = current_values[full_dim] + change
current_values[full_dim] = max(param.get('min_val', 0),
min(param.get('max_val', 100), new_value))
trajectories[full_dim][i, t] = current_values[full_dim]
# Mise à jour des états persistants
update_persistent_states(persistent_states, new_events, current_values, current_age)
return time_points, trajectories, compute_granular_statistics(trajectories, time_points, params)
def generate_disruptive_events(age, vulnerability, persistent_states, current_values, dt):
"""Génère des événements perturbateurs spécifiques selon l'âge et la vulnérabilité"""
events = []
# ÉVÉNEMENTS DE SANTÉ
health_events = [
# Addictions
{'name': 'Début alcoolisme', 'prob_base': 0.008, 'age_peak': 35, 'duration': 240,
'effects': {'santé_physique': 0.6, 'santé_mentale': 0.7, 'carrière_revenus': 0.8, 'social_relations': 0.6}},
{'name': 'Addiction drogues dures', 'prob_base': 0.003, 'age_peak': 28, 'duration': 180,
'effects': {'santé_physique': 0.3, 'santé_mentale': 0.4, 'carrière_revenus': 0.4, 'social_relations': 0.3, 'social_exclusion': 1.8}},
{'name': 'Addiction médicaments', 'prob_base': 0.005, 'age_peak': 45, 'duration': 120,
'effects': {'santé_physique': 0.7, 'santé_mentale': 0.6, 'carrière_productivité': 0.7}},
# Maladies graves
{'name': 'Cancer', 'prob_base': 0.004, 'age_peak': 55, 'duration': 36,
'effects': {'santé_physique': 0.4, 'santé_mentale': 0.6, 'carrière_revenus': 0.7, 'social_soutien': 1.3}},
{'name': 'AVC', 'prob_base': 0.002, 'age_peak': 60, 'duration': 60,
'effects': {'santé_physique': 0.5, 'santé_mentale': 0.6, 'carrière_productivité': 0.4}},
{'name': 'Infarctus', 'prob_base': 0.003, 'age_peak': 50, 'duration': 24,
'effects': {'santé_physique': 0.6, 'santé_mentale': 0.7, 'carrière_revenus': 0.8}},
{'name': 'Dépression majeure', 'prob_base': 0.012, 'age_peak': 35, 'duration': 18,
'effects': {'santé_mentale': 0.4, 'carrière_productivité': 0.6, 'social_relations': 0.7}},
{'name': 'Burn-out', 'prob_base': 0.015, 'age_peak': 40, 'duration': 12,
'effects': {'santé_mentale': 0.5, 'carrière_productivité': 0.3, 'carrière_revenus': 0.7}},
# Accidents et traumatismes
{'name': 'Accident travail grave', 'prob_base': 0.006, 'age_peak': 35, 'duration': 24,
'effects': {'santé_physique': 0.6, 'carrière_revenus': 0.8, 'carrière_productivité': 0.7}},
{'name': 'Accident route invalidant', 'prob_base': 0.004, 'age_peak': 30, 'duration': 48,
'effects': {'santé_physique': 0.5, 'santé_mentale': 0.7, 'carrière_revenus': 0.6}},
# Harcèlement et violence
{'name': 'Harcèlement moral travail', 'prob_base': 0.020, 'age_peak': 40, 'duration': 18,
'effects': {'santé_mentale': 0.5, 'carrière_productivité': 0.6, 'social_confiance': 0.6}},
{'name': 'Violence conjugale', 'prob_base': 0.008, 'age_peak': 35, 'duration': 36,
'effects': {'santé_mentale': 0.4, 'santé_physique': 0.7, 'social_relations': 0.5}}
]
# ÉVÉNEMENTS DE CARRIÈRE
career_events = [
# Problèmes financiers
{'name': 'Licenciement économique', 'prob_base': 0.025, 'age_peak': 45, 'duration': 12,
'effects': {'carrière_revenus': 0.2, 'santé_mentale': 0.6, 'social_statut': 0.7}},
{'name': 'Faillite entreprise', 'prob_base': 0.008, 'age_peak': 40, 'duration': 18,
'effects': {'carrière_revenus': 0.1, 'carrière_patrimoine': 0.3, 'santé_mentale': 0.5}},
{'name': 'Surendettement', 'prob_base': 0.015, 'age_peak': 35, 'duration': 60,
'effects': {'carrière_patrimoine': 0.4, 'santé_mentale': 0.6, 'social_statut': 0.6}},
{'name': 'Délocalisation emploi', 'prob_base': 0.012, 'age_peak': 45, 'duration': 6,
'effects': {'carrière_revenus': 0.3, 'social_mobilité': 0.5, 'santé_mentale': 0.7}},
{'name': 'Obsolescence compétences', 'prob_base': 0.018, 'age_peak': 50, 'duration': 36,
'effects': {'carrière_productivité': 0.6, 'carrière_revenus': 0.7, 'santé_mentale': 0.8}},
# Problèmes juridiques
{'name': 'Divorce contentieux', 'prob_base': 0.006, 'age_peak': 40, 'duration': 24,
'effects': {'carrière_patrimoine': 0.5, 'santé_mentale': 0.6, 'social_relations': 0.4}},
{'name': 'Procès financier', 'prob_base': 0.004, 'age_peak': 45, 'duration': 18,
'effects': {'carrière_patrimoine': 0.6, 'santé_mentale': 0.7, 'social_réputation': 0.5}},
# Opportunités manquées
{'name': 'Refus promotion injuste', 'prob_base': 0.015, 'age_peak': 38, 'duration': 12,
'effects': {'carrière_revenus': 0.8, 'santé_mentale': 0.7, 'carrière_productivité': 0.8}},
{'name': 'Discrimination emploi', 'prob_base': 0.012, 'age_peak': 45, 'duration': 24,
'effects': {'carrière_revenus': 0.7, 'santé_mentale': 0.6, 'social_confiance': 0.5}}
]
# ÉVÉNEMENTS SOCIAUX
social_events = [
# Isolement et exclusion
{'name': 'Isolement social majeur', 'prob_base': 0.010, 'age_peak': 35, 'duration': 36,
'effects': {'social_relations': 0.3, 'santé_mentale': 0.5, 'social_soutien': 0.2}},
{'name': 'Exclusion groupe social', 'prob_base': 0.008, 'age_peak': 30, 'duration': 24,
'effects': {'social_relations': 0.4, 'social_statut': 0.6, 'santé_mentale': 0.6}},
{'name': 'Conflits familiaux graves', 'prob_base': 0.012, 'age_peak': 40, 'duration': 48,
'effects': {'social_relations': 0.5, 'social_soutien': 0.4, 'santé_mentale': 0.7}},
# Problèmes de classe sociale
{'name': 'Déclassement social', 'prob_base': 0.015, 'age_peak': 45, 'duration': 60,
'effects': {'social_statut': 0.6, 'social_mobilité': 0.5, 'santé_mentale': 0.6}},
{'name': 'Exclusion culturelle', 'prob_base': 0.006, 'age_peak': 35, 'duration': 36,
'effects': {'social_intégration': 0.4, 'social_relations': 0.6, 'santé_mentale': 0.7}},
# Polarisation et radicalisation
{'name': 'Radicalisation idéologique', 'prob_base': 0.004, 'age_peak': 28, 'duration': 48,
'effects': {'social_relations': 0.5, 'social_tolérance': 0.3, 'carrière_opportunités': 0.7}},
{'name': 'Ostracisme communautaire', 'prob_base': 0.005, 'age_peak': 30, 'duration': 60,
'effects': {'social_soutien': 0.2, 'social_relations': 0.3, 'santé_mentale': 0.5}},
# Changements de vie majeurs
{'name': 'Décès conjoint', 'prob_base': 0.003, 'age_peak': 55, 'duration': 36,
'effects': {'santé_mentale': 0.4, 'social_soutien': 0.5, 'carrière_revenus': 0.7}},
{'name': 'Maladie enfant grave', 'prob_base': 0.004, 'age_peak': 40, 'duration': 24,
'effects': {'santé_mentale': 0.6, 'carrière_productivité': 0.7, 'carrière_revenus': 0.8}},
# Discrimination et stigmatisation
{'name': 'Discrimination systémique', 'prob_base': 0.008, 'age_peak': 35, 'duration': 120,
'effects': {'carrière_opportunités': 0.7, 'social_statut': 0.6, 'santé_mentale': 0.7}},
{'name': 'Stigmatisation maladie mentale', 'prob_base': 0.006, 'age_peak': 30, 'duration': 48,
'effects': {'social_relations': 0.6, 'carrière_opportunités': 0.7, 'social_soutien': 0.5}}
]
# ÉVÉNEMENTS DE DIVERSITÉ
diversity_events = [
{'name': 'Discrimination handicap', 'prob_base': 0.01, 'age_peak': 40, 'duration': 24,
'effects': {'diversité_handicap': 0.5, 'santé_mentale': 0.6, 'carrière_opportunités': 0.7}},
{'name': 'Discrimination orientation sexuelle', 'prob_base': 0.008, 'age_peak': 30, 'duration': 18,
'effects': {'diversité_orientation_sexuelle': 0.6, 'social_relations': 0.5, 'santé_mentale': 0.7}},
{'name': 'Discrimination religieuse', 'prob_base': 0.007, 'age_peak': 35, 'duration': 24,
'effects': {'diversité_religion': 0.5, 'social_intégration': 0.6, 'santé_mentale': 0.7}},
{'name': 'Discrimination origine', 'prob_base': 0.012, 'age_peak': 30, 'duration': 36,
'effects': {'diversité_origine': 0.4, 'social_exclusion': 0.6, 'carrière_opportunités': 0.5}},
{'name': 'Stigmatisation locale', 'prob_base': 0.009, 'age_peak': 25, 'duration': 48,
'effects': {'diversité_stigmatisation_locale': 0.7, 'social_relations': 0.4, 'santé_mentale': 0.6}}
]
all_events = health_events + career_events + social_events + diversity_events
# Sélection des événements selon probabilités ajustées
for event_template in all_events:
# Ajustement probabilité selon l'âge
age_factor = np.exp(-0.5 * ((age - event_template['age_peak']) / 10) ** 2)
# Ajustement selon vulnérabilité
vulnerability_factor = vulnerability.get(event_template['name'], 1.0)
# Ajustement selon états persistants
persistent_factor = 1.0
for state, active in persistent_states.items():
if active and state in event_template.get('triggers', []):
persistent_factor *= 2.0 # Double la probabilité
adjusted_prob = event_template['prob_base'] * age_factor * vulnerability_factor * persistent_factor * dt
if np.random.random() < adjusted_prob:
events.append({
'name': event_template['name'],
'start_age': age,
'duration': event_template['duration'],
'effects': event_template['effects'],
'severity': np.random.uniform(0.7, 1.3) # Variabilité de sévérité
})
return events
def generate_vulnerability_profile():
"""Génère un profil de vulnérabilité personnalisé"""
return {
'Début alcoolisme': np.random.lognormal(0, 0.5),
'Addiction drogues dures': np.random.lognormal(-0.5, 0.8),
'Dépression majeure': np.random.lognormal(0, 0.6),
'Burn-out': np.random.lognormal(0.2, 0.4),
'Licenciement économique': np.random.lognormal(0, 0.3),
'Isolement social majeur': np.random.lognormal(-0.2, 0.7),
'Discrimination systémique': np.random.lognormal(-0.3, 0.9),
'Discrimination handicap': np.random.lognormal(-0.3, 0.9),
'Discrimination orientation sexuelle': np.random.lognormal(-0.3, 0.9),
'Discrimination religieuse': np.random.lognormal(-0.3, 0.9),
'Discrimination origine': np.random.lognormal(-0.3, 0.9),
'Stigmatisation locale': np.random.lognormal(-0.3, 0.9)
}
def initialize_persistent_states():
"""Initialise les états persistants"""
return {
'addiction_alcool': False,
'addiction_drogues': False,
'maladie_chronique': False,
'handicap': False,
'dette_chronique': False,
'isolement_social': False,
'discrimination_active': False
}
def update_persistent_states(states, new_events, current_values, age):
"""Met à jour les états persistants selon les événements"""
for event in new_events:
if 'alcoolisme' in event['name']:
states['addiction_alcool'] = True
elif 'drogues' in event['name']:
states['addiction_drogues'] = True
elif event['name'] in ['Cancer', 'AVC', 'Infarctus']:
states['maladie_chronique'] = True
elif 'Accident' in event['name'] and 'invalidant' in event['name']:
states['handicap'] = True
elif 'endettement' in event['name']:
states['dette_chronique'] = True
elif 'Isolement' in event['name']:
states['isolement_social'] = True
elif 'Discrimination' in event['name']:
states['discrimination_active'] = True
def calculate_active_effects(event_history, current_step, current_age, persistent_states):
"""Calcule les effets actifs de tous les événements en cours"""
effects = {}
for event in event_history:
if event['start_age'] <= current_age <= event['start_age'] + event['duration']/12:
# Calcul de l'intensité selon la phase (début, pic, déclin)
event_progress = (current_age - event['start_age']) / (event['duration']/12)
if event_progress < 0.3: # Phase d'aggravation
intensity = 0.5 + 1.5 * event_progress / 0.3
elif event_progress < 0.7: # Phase de pic
intensity = 2.0
else: # Phase de récupération
intensity = 2.0 * (1 - event_progress) / 0.3
intensity *= event['severity']
for dimension, base_effect in event['effects'].items():
current_effect = 1 + (base_effect - 1) * intensity
if dimension in effects:
effects[dimension] *= current_effect
else:
effects[dimension] = current_effect
return effects
def calculate_detailed_age_effects(age, dimensions):
"""Calcule les effets détaillés de l'âge sur chaque sous-dimension"""
effects = {}
for dim in dimensions:
if 'santé_physique' in dim:
effects[dim] = max(0.3, 1 - (max(0, age - 30) / 70) * 0.7)
elif 'santé_mentale' in dim:
effects[dim] = 1 - 0.1 * np.sin((age - 25) / 20 * np.pi) # Fluctuation avec pic vers 45 ans
elif 'carrière_revenus' in dim:
if age < 35:
effects[dim] = 1 + (age - 25) * 0.05 # Croissance rapide
elif age < 55:
effects[dim] = 1.5 + (age - 35) * 0.02 # Croissance modérée
else:
effects[dim] = 1.9 - (age - 55) * 0.03 # Déclin pré-retraite
elif 'carrière_productivité' in dim:
effects[dim] = 1 + 0.3 * np.exp(-((age - 40) / 15) ** 2) - (max(0, age - 50) / 100)
elif 'social_relations' in dim:
effects[dim] = 1 - 0.2 * (age - 25) / 40 if age > 25 else 1
else:
effects[dim] = 1.0
return effects
def calculate_social_class_effects(current_values, age):
"""Calcule les effets de classe sociale"""
effects = {}
# Détermination de la classe sociale approximative
revenus_key = None
patrimoine_key = None
education_key = None
for key in current_values.keys():
if 'revenus' in key:
revenus_key = key
elif 'patrimoine' in key:
patrimoine_key = key
elif 'éducation' in key:
education_key = key
if revenus_key and patrimoine_key and education_key:
revenus = current_values[revenus_key]
patrimoine = current_values[patrimoine_key]
education = current_values[education_key]
# Score de classe sociale composite
social_score = (revenus / 50000 + patrimoine / 200000 + education / 10) / 3
# Effets selon la classe
if social_score > 1.5: # Classe supérieure
class_multiplier = 1.2
elif social_score > 0.8: # Classe moyenne
class_multiplier = 1.0
else: # Classe populaire
class_multiplier = 0.8
# Application différenciée selon les dimensions
for dim in current_values.keys():
if 'santé' in dim:
effects[dim] = 0.9 + 0.2 * social_score
elif 'carrière_opportunités' in dim:
effects[dim] = 0.7 + 0.6 * social_score
elif 'social_statut' in dim:
effects[dim] = 0.8 + 0.4 * social_score
else:
effects[dim] = 0.95 + 0.1 * social_score
return effects
def generate_correlation_matrix(dimensions):
"""Génère une matrice de corrélation réaliste entre toutes les sous-dimensions"""
n = len(dimensions)
corr = np.eye(n)
# Définition des corrélations logiques
correlations = {
('santé_physique', 'santé_mentale'): 0.6,
('santé_physique', 'carrière_productivité'): 0.4,
('santé_mentale', 'social_relations'): 0.5,
('carrière_revenus', 'carrière_patrimoine'): 0.7,
('carrière_revenus', 'social_statut'): 0.6,
('social_relations', 'social_soutien'): 0.8,
('social_statut', 'social_mobilité'): 0.5,
# Corrélations négatives
('santé_physique', 'social_exclusion'): -0.3,
('carrière_revenus', 'social_exclusion'): -0.4,
('social_relations', 'social_exclusion'): -0.7,
}
for i, dim1 in enumerate(dimensions):
for j, dim2 in enumerate(dimensions):
if i != j:
key = tuple(sorted([dim1.split('_')[1], dim2.split('_')[1]]))
if key in correlations:
corr[i, j] = correlations[key]
else:
# Corrélation de base selon domaine
domain1 = dim1.split('_')[0]
domain2 = dim2.split('_')[0]
if domain1 == domain2:
corr[i, j] = 0.3 # Corrélation intra-domaine
else:
corr[i, j] = 0.1 # Corrélation inter-domaines
return corr
def compute_granular_statistics(trajectories, time_points, params):
"""Compute detailed statistics for all sub-dimensions"""
stats_data = {}
for traj_name, data in trajectories.items():
final_values = data[:, -1]
initial_values = data[:, 0]
stats_data[traj_name] = {
'dimension': traj_name,
'valeur_initiale': np.mean(initial_values),
'valeur_finale_moyenne': np.mean(final_values),
'valeur_finale_mediane': np.median(final_values),
'ecart_type_final': np.std(final_values),
'prob_amelioration': np.sum(final_values > initial_values) / len(final_values) * 100,
'pic_moyen': np.mean(np.max(data, axis=1)),
'creux_moyen': np.mean(np.min(data, axis=1)),
'volatilite': np.mean(np.std(data, axis=1)),
'tendance': 'hausse' if np.mean(final_values) > np.mean(initial_values) else 'baisse'
}
return stats_data
# Configuration des paramètres granulaires
granular_params = {
'santé': {
'physique': {'S0': 8.0, 'mu': -0.01, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'mentale': {'S0': 7.0, 'mu': -0.005, 'sigma': 0.6, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'addictions': {'S0': 0.5, 'mu': 0.002, 'sigma': 0.3, 'type': 'additive', 'min_val': 0, 'max_val': 10}
},
'carrière': {
'revenus': {'S0': 35000, 'mu': 0.03, 'sigma': 0.25, 'type': 'multiplicative', 'min_val': 0, 'max_val': 500000},
'patrimoine': {'S0': 15000, 'mu': 0.04, 'sigma': 0.35, 'type': 'multiplicative', 'min_val': 0, 'max_val': 2000000},
'productivité': {'S0': 7.0, 'mu': 0.01, 'sigma': 0.3, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'opportunités': {'S0': 6.0, 'mu': 0.005, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10}
},
'social': {
'relations': {'S0': 6.5, 'mu': -0.002, 'sigma': 0.5, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'soutien': {'S0': 6.0, 'mu': -0.001, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'statut': {'S0': 5.5, 'mu': 0.008, 'sigma': 0.3, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'exclusion': {'S0': 2.0, 'mu': 0.003, 'sigma': 0.6, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'mobilité': {'S0': 5.0, 'mu': 0.002, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'intégration': {'S0': 6.8, 'mu': -0.003, 'sigma': 0.5, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'tolérance': {'S0': 7.2, 'mu': -0.005, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'réputation': {'S0': 6.5, 'mu': 0.001, 'sigma': 0.6, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'confiance': {'S0': 6.8, 'mu': -0.002, 'sigma': 0.5, 'type': 'additive', 'min_val': 0, 'max_val': 10}
},
'éducation': {
'niveau': {'S0': 6.0, 'mu': 0.008, 'sigma': 0.2, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'compétences': {'S0': 6.5, 'mu': 0.005, 'sigma': 0.3, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'adaptabilité': {'S0': 7.0, 'mu': -0.003, 'sigma': 0.4, 'type': 'additive', 'min_val': 0, 'max_val': 10}
},
'diversité': {
'handicap': {'S0': 0.0, 'mu': 0.0, 'sigma': 0.1, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'orientation_sexuelle': {'S0': 5.0, 'mu': 0.0, 'sigma': 0.2, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'religion': {'S0': 5.0, 'mu': 0.0, 'sigma': 0.2, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'origine': {'S0': 5.0, 'mu': 0.0, 'sigma': 0.2, 'type': 'additive', 'min_val': 0, 'max_val': 10},
'stigmatisation_locale': {'S0': 2.0, 'mu': 0.0, 'sigma': 0.3, 'type': 'additive', 'min_val': 0, 'max_val': 10}
}
}
# Paramètres de simulation
T = 40 # 40 ans de vie active (25-65 ans)
dt = 0.08 # Pas de ~1 mois
num_simulations = 1500
start_age = 25
print("=== SIMULATION GRANULAIRE DE TRAJECTOIRES DE VIE ===\n")
print(f"Période simulée: {start_age} à {start_age + T} ans")
print(f"Nombre de simulations: {num_simulations}")
print(f"Résolution temporelle: {dt:.2f} ans (~{dt*12:.0f} mois)")
print(f"Nombre de sous-dimensions: {sum(len(sub_dims) for sub_dims in granular_params.values())}")
print("\nLancement de la simulation avec événements perturbateurs...")
# Lancement de la simulation
time_points, trajectories, statistics = simulate_life_granular(
granular_params, T, dt, num_simulations, start_age
)
print("Simulation terminée !\n")
# Analyse des événements les plus impactants
print("=== ANALYSE DES ÉVÉNEMENTS PERTURBATEURS ===\n")
# Création des visualisations avancées
fig = plt.figure(figsize=(20, 16))
# 1. Trajectoires par domaine principal
domains = ['santé', 'carrière', 'social', 'éducation', 'diversité']
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFBE0B']
for i, (domain, color) in enumerate(zip(domains, colors)):
ax = plt.subplot(5, 3, i*3 + 1)
# Sélection des sous-dimensions du domaine
domain_trajectories = {k: v for k, v in trajectories.items() if k.startswith(domain)}
for sub_dim, data in domain_trajectories.items():
mean_traj = np.mean(data, axis=0)
p10 = np.percentile(data, 10, axis=0)
p90 = np.percentile(data, 90, axis=0)
label = sub_dim.split('_', 1)[1].capitalize()
ax.plot(time_points, mean_traj, label=label, linewidth=2)
ax.fill_between(time_points, p10, p90, alpha=0.1)
ax.set_title(f'Domaine: {domain.capitalize()}', fontweight='bold', fontsize=12)
ax.set_xlabel('Âge (années)')
ax.set_ylabel('Niveau moyen')
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
# 2. Distributions finales critiques
critical_dimensions = ['santé_physique', 'santé_mentale', 'carrière_revenus', 'social_exclusion', 'diversité_handicap']
for i, dim in enumerate(critical_dimensions):
ax = plt.subplot(5, 3, i*3 + 2)
if dim in trajectories:
final_values = trajectories[dim][:, -1]
# Histogramme avec zones de risque
n, bins, patches = ax.hist(final_values, bins=40, alpha=0.7, color=colors[i])
# Coloration selon zones de risque
if 'santé' in dim:
# Zone critique < 3, attention < 5, normale >= 5
for j, (patch, bin_val) in enumerate(zip(patches, bins[:-1])):
if bin_val < 3:
patch.set_color('red')
elif bin_val < 5:
patch.set_color('orange')
else:
patch.set_color('green')
elif 'exclusion' in dim:
# Exclusion: plus c'est haut, plus c'est grave
for j, (patch, bin_val) in enumerate(zip(patches, bins[:-1])):
if bin_val > 7:
patch.set_color('red')
elif bin_val > 4:
patch.set_color('orange')
else:
patch.set_color('green')
elif 'handicap' in dim:
# Handicap: plus c'est haut, plus c'est grave
for j, (patch, bin_val) in enumerate(zip(patches, bins[:-1])):
if bin_val > 7:
patch.set_color('red')
elif bin_val > 4:
patch.set_color('orange')
else:
patch.set_color('green')
ax.axvline(np.mean(final_values), color='black', linestyle='--', linewidth=2,
label=f'Moyenne: {np.mean(final_values):.1f}')
ax.axvline(np.median(final_values), color='blue', linestyle='--', linewidth=2,
label=f'Médiane: {np.median(final_values):.1f}')
ax.set_title(f'Distribution finale: {dim}', fontweight='bold')
ax.set_xlabel('Valeur finale')
ax.set_ylabel('Fréquence')
ax.legend()
# 3. Matrices de corrélation par période de vie
periods = ['Jeune (25-35)', 'Milieu (35-50)', 'Senior (50-65)']
period_indices = [
(0, int(len(time_points) * 0.25)),
(int(len(time_points) * 0.25), int(len(time_points) * 0.75)),
(int(len(time_points) * 0.75), len(time_points))
]
for i, (period, (start_idx, end_idx)) in enumerate(zip(periods, period_indices)):
ax = plt.subplot(5, 3, i*3 + 3)
# Sélection des dimensions clés pour la visualisation
key_dims = ['santé_physique', 'santé_mentale', 'carrière_revenus',
'social_relations', 'social_exclusion', 'diversité_handicap']
corr_data = []
for dim in key_dims:
if dim in trajectories:
period_values = np.mean(trajectories[dim][:, start_idx:end_idx], axis=1)
corr_data.append(period_values)
if corr_data:
corr_matrix = np.corrcoef(corr_data)
im = ax.imshow(corr_matrix, cmap='RdBu_r', vmin=-1, vmax=1)
ax.set_xticks(range(len(key_dims)))
ax.set_yticks(range(len(key_dims)))
ax.set_xticklabels([d.split('_')[1] for d in key_dims], rotation=45, ha='right')
ax.set_yticklabels([d.split('_')[1] for d in key_dims])
# Ajout des valeurs de corrélation
for x in range(len(key_dims)):
for y in range(len(key_dims)):
ax.text(y, x, f'{corr_matrix[x, y]:.2f}',
ha='center', va='center', color='black', fontsize=8)
ax.set_title(f'Corrélations - {period}', fontweight='bold')
plt.tight_layout()
plt.suptitle('Analyse Granulaire des Trajectoires de Vie avec Événements Perturbateurs',
fontsize=16, fontweight='bold', y=0.98)
plt.show()
# Analyse des statistiques détaillées
print("=== STATISTIQUES DÉTAILLÉES PAR SOUS-DIMENSION ===\n")
df_stats = pd.DataFrame(list(statistics.values()))
df_stats = df_stats.round(2)
# Groupement par domaine pour l'affichage
for domain in domains:
domain_stats = df_stats[df_stats['dimension'].str.startswith(domain)]
if not domain_stats.empty:
print(f"? DOMAINE: {domain.upper()}")
print("-" * 80)
for _, row in domain_stats.iterrows():
sub_dim = row['dimension'].split('_', 1)[1]
print(f" ? {sub_dim.capitalize()}:")
print(f" • Évolution: {row['valeur_initiale']:.1f} ? {row['valeur_finale_moyenne']:.1f} "
f"({row['tendance']})")
print(f" • Amélioration: {row['prob_amelioration']:.1f}% des cas")
print(f" • Volatilité: {row['volatilite']:.2f} | Pic moyen: {row['pic_moyen']:.1f}")
# Interprétation selon la dimension
if 'revenus' in row['dimension']:
final_val = row['valeur_finale_moyenne']
if final_val < 25000:
status = "? Situation précaire"
elif final_val < 45000:
status = "? Classe moyenne inférieure"
elif final_val < 70000:
status = "? Classe moyenne"
else:
status = "? Classe aisée"
print(f" • Statut économique moyen: {status}")
elif 'physique' in row['dimension'] or 'mentale' in row['dimension']:
final_val = row['valeur_finale_moyenne']
if final_val < 3:
status = "? Santé critique"
elif final_val < 5:
status = "? Santé fragile"
elif final_val < 7:
status = "? Santé correcte"
else:
status = "? Excellente santé"
print(f" • État de santé moyen: {status}")
elif 'exclusion' in row['dimension']:
final_val = row['valeur_finale_moyenne']
if final_val > 7:
status = "? Exclusion forte"
elif final_val > 4:
status = "? Risque d'exclusion"
elif final_val > 2:
status = "? Intégration normale"
else:
status = "? Bien intégré"
print(f" • Niveau d'exclusion: {status}")
elif 'handicap' in row['dimension']:
final_val = row['valeur_finale_moyenne']
if final_val > 7:
status = "? Handicap sévère"
elif final_val > 4:
status = "? Handicap modéré"
elif final_val > 2:
status = "? Handicap léger"
else:
status = "? Pas de handicap"
print(f" • Niveau de handicap: {status}")
print()
print("-" * 80)
print()
# Analyse des trajectoires à risque
print("=== ANALYSE DES TRAJECTOIRES À RISQUE ===\n")
risk_analysis = {}
for dim_name, data in trajectories.items():
final_values = data[:, -1]
if 'santé' in dim_name:
at_risk = np.sum(final_values < 3) / len(final_values) * 100
risk_analysis[dim_name] = {'type': 'santé critique', 'percentage': at_risk}
elif 'revenus' in dim_name:
at_risk = np.sum(final_values < 20000) / len(final_values) * 100
risk_analysis[dim_name] = {'type': 'précarité économique', 'percentage': at_risk}
elif 'exclusion' in dim_name:
at_risk = np.sum(final_values > 7) / len(final_values) * 100
risk_analysis[dim_name] = {'type': 'exclusion sociale', 'percentage': at_risk}
elif 'handicap' in dim_name:
at_risk = np.sum(final_values > 7) / len(final_values) * 100
risk_analysis[dim_name] = {'type': 'handicap sévère', 'percentage': at_risk}
print("? POPULATIONS À RISQUE:")
for dim, risk_info in risk_analysis.items():
if risk_info['percentage'] > 5: # Seuil de 5%
print(f" • {dim}: {risk_info['percentage']:.1f}% en {risk_info['type']}")
# Analyse des corrélations dangereuses
print(f"\n? CORRÉLATIONS CRITIQUES IDENTIFIÉES:")
high_risk_correlations = []
if 'santé_mentale' in trajectories and 'social_exclusion' in trajectories:
mental_health_data = trajectories['santé_mentale'][:, -1]
exclusion_data = trajectories['social_exclusion'][:, -1]
correlation = np.corrcoef(mental_health_data, exclusion_data)[0, 1]
if abs(correlation) > 0.3:
print(f" • Santé mentale ? Exclusion sociale: r = {correlation:.3f}")
if correlation < -0.3:
print(f" ? Plus la santé mentale décline, plus l'exclusion augmente")
if 'carrière_revenus' in trajectories and 'social_statut' in trajectories:
revenus_data = trajectories['carrière_revenus'][:, -1]
statut_data = trajectories['social_statut'][:, -1]
correlation = np.corrcoef(revenus_data, statut_data)[0, 1]
if correlation > 0.4:
print(f" • Revenus ? Statut social: r = {correlation:.3f}")
print(f" ? Forte stratification sociale par les revenus")
# Synthèse finale
print(f"\n" + "="*60)
print("? SYNTHÈSE DE LA SIMULATION")
print("="*60)
total_trajectories = len(list(trajectories.values())[0])
print(f"• {total_trajectories} trajectoires individuelles simulées")
print(f"• {len(trajectories)} sous-dimensions analysées")
print(f"• Période de vie: {start_age} à {start_age + T} ans")
# Calcul d'un indice de bien-être composite
if all(dim in trajectories for dim in ['santé_physique', 'santé_mentale', 'carrière_revenus', 'social_relations']):
composite_wellbeing = (
trajectories['santé_physique'][:, -1] * 0.25 +
trajectories['santé_mentale'][:, -1] * 0.25 +
(trajectories['carrière_revenus'][:, -1] / 50000) * 2.5 + # Normalisation revenus
trajectories['social_relations'][:, -1] * 0.25
)
print(f"\n? INDICE DE BIEN-ÊTRE COMPOSITE FINAL:")
print(f" • Moyenne: {np.mean(composite_wellbeing):.2f}/10")
print(f" • {np.sum(composite_wellbeing >= 7)/len(composite_wellbeing)*100:.1f}% atteignent un bon niveau")
print(f" • {np.sum(composite_wellbeing < 4)/len(composite_wellbeing)*100:.1f}% en situation difficile")
print(f"\n? Analyse terminée ! Utilisez les données pour approfondir l'étude des trajectoires.")
– ℹ Vous pouvez coller ça dans votre terminal si ça vous chante. Vous l'aurez dans le Baba.
Les fondations mathématiques plus solides que l’univers, au service de la prédiction contemporaine des catastrophes individuelles. Il faut imaginer Madame Soleil, avec son logiciel d’analyse prospective, son diagramme de Porter et son analyse SWOT, essayer de vous démontrer que votre futur frigo rendra à coup sûr l’âme en 2035. Elle n’est pas bête Madame Soleil et elle a pleins d’idées pour faire de votre chéquier la feuille de route du vide intersidéral. Ton mari, il va revenir, ta vie elle va changer, tu vas devenir riche et célèbre, tomber et te relever de la drogue, du cancer, des accidents de la vie, tes seins et tes lèvres vont grossir, et tes enfants seront heureux avec beaucoup de petits enfants que tu pourras recevoir dans ta villa de rêve. Marabout, bout de ficelle…
Pourtant, malgré ces méthodes, l’avenir demeure une aventure intouchable, un mirage dans le désert de l'existence. Les hommes, tels des voyageurs perdus dans l’immensité du temps, continuent leur quête, aveuglés par l'espoir de saisir l’inaccessible. « L’avenir est une terre inconnue, et nous en sommes les explorateurs », écrivait H.G. Wells, capturant la vérité de cette recherche insatiable, sans fin et sans réponse. L’avenir est toujours là, devant eux, mais jamais tout à fait présent, toujours fuyant, toujours éthéré. Jusqu’à l’EHPAD et le caveau tant attendu. On en bavera parfois…sur la fin…c’est sûr. Et à la toute fin, nos derniers mots, soupesant par la parole le monde qui nous a étreint de notre vivant : « … », le souffle du vent, notre dernier murmure, l'âme libérée. Une pelleté de terre ou un four…on tire la chasse d’eau et voilà ! Au suivant !
Dans ce ballet grotesque de croyances, de faux prophètes et de théories rationnelles, une question persistait, comme une étoile filante dans l’obscurité du ciel : l’avenir était-il vraiment connaissable, ou n’était-il qu’un mirage, une illusion que les hommes poursuivaient sans fin ? Peut-être que la véritable sagesse résidait dans l'acceptation de l’incertitude, dans la reconnaissance que le futur, comme la vie elle-même, n’était pas une énigme à résoudre, mais un mystère à accueillir avec humilité. Tu parles, Charles ! Personne en a rien à cirer de ces bêtises de Cambrai ! Eux, ils se posent pas de questions comme ça ! Ils font un prêt et advienne que pourra ! Ça fait bien les affaires de certains. Salutations (on sait jamais).
Qui saura discerner, au milieu des ombres et des éclats de lumière, celui ou celle qui, parmi tous les âmes errantes, parviendra à saisir la clé de l’avenir ? Bien malin, qui pourrait prétendre connaître la réponse à cette question suspendue dans l’air du temps, comme une étoile solitaire, brillante mais lointaine. Car l’élu, celui dont le destin semble se tisser aux fils invisibles de la destinée, n’est pas celui qui cherche à tout prix à comprendre le mystère, mais plutôt celui qui sait se fondre dans le flux éternel de l’inconnu, sans arrogance, sans certitude. C’est un métier il faut bien le dire. Être l’élu. Dans les dunes du Néguev comme à la rue de l’Université…
Les prophètes et les faux prophètes, les oracles et les charlatans, tous se sont déjà perdus dans la quête de l’énigme. Ils parlent de signes, de visions, d’écritures anciennes, comme si la vérité se trouvait quelque part sur une carte déjà tracée. Mais l’élu n’est pas celui qui trouve la carte ; il est celui qui, sans guide, marche sans peur dans le néant, comme un voyageur qui s’éloigne sans retour de l’ombre du doute après avoir essuyé des refus et s’être fait refermé la porte à la gueule au nez…
Certains croient qu’il ou elle viendra d’un temple ancien, élevant ses mains vers les cieux, ou d’un profond abîme, là où les mystères de la terre et des morts s’entrelacent. D’autres murmurent que l’élu sera un enfant, un innocent dont le regard encore pur verra ce que les adultes ne perçoivent plus. Greta ? D’autres enfin, se disent que ce sera celui ou celle qui saura faire naître, dans la sombre forêt des possibles, une lumière nouvelle, une flamme qui illuminera l’avenir d’une sagesse jamais connue. Une flamme hein ? On vous voit venir…
Mais bien malin, qui...osera prétendre que l’élu sera celui qui, tout simplement, ne cherche pas à être élu. Peut-être n’est-ce pas un mystère à résoudre, ni une épreuve à surmonter, mais un état d’être, une réceptivité rare à l’instant présent, où chaque souffle, chaque vibration de l’âme, chaque rencontre furtive avec l’invisible nous révèle un peu plus de notre propre vérité. L’élu n’est peut-être que celui qui sait s'effacer devant la grandeur du monde, celui qui accepte que l’avenir, comme le passé, ne sont que des fragments de rêves que nous tissons tous ensemble, à l’insu de notre plein gré, en rayant avec ses grandes dents, le parquet de l’adversité. L’élu est ambitieux. Pour lui, et un peu pour les autres il faut bien le dire. Et s’il pouvait prédire l’avenir, il ne serait pas là, à vous serrer la pogne avec conviction, en pensant que le monde lui appartiendra bientôt. Au pire, vous auriez un selfie…
Il existe des légendes anciennes, celles qui murmurent que l’élu se dévoilera dans un silence profond, là où tout semble mort, mais où tout renaît pourtant à chaque battement d’aile. Car peut-être que l’élu n'est pas une figure unique, mais l'ensemble des âmes qui, à travers les âges, se sont éveillées à cette vérité simple : l’avenir n’appartient à personne, et il n'est jamais pleinement connu avant qu’il ne devienne passé. Et il y en a eu des élus…pas qu’un peu…!
Alors, bien malin, qui...pourra dire, avec certitude, que l’élu viendra d'un endroit précis, ou qu'il ou elle possède une forme particulière ? L’élu, peut-être, c’est celui qui saura regarder sans juger, qui saura marcher sans attendre, qui saura aimer sans condition, sachant que l’élection n’est pas une gloire à recevoir, mais une grâce à accueillir, en toute humilité. Quod erat demonstrandum.
Le souffle du vent dans les voiles de l’incertitude…
Nota bene : La prospective n'est pas une science exacte. La bourse non plus. De même que le point « G ». Pauvre Godwin…À quand la prochaine élection ? Les municipales…les départementales, les régionales, avant le grand raout hexagonal. Didascalie : « Calmement, presque blessé… ».
« C’est marrant, vous, quand vous êtes dans la merde, vous appelez les cons à la rescousse. »
#futurs #prospective #charlatans #pythié
mastodon : https://ensemblevide.ynh.fr/@hello courriel : hello@ensemblevide.ynh.fr