/
Valerios
/
Golden_cat_mit
Обзор
Документация
Войти
/
Valerios
/
Golden_cat_mit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
patch
World1500
3 177 строк
134 KB
Valerios
create World1500
05 янв 2026, 18:44
05 янв 2026, 18:44
9a2df11
Код
Авторство
О чём код?
🐱 ЗОЛОТОЙ КОТ: WORLD-MASTER v1500 ПОЛНАЯ ВЕРСИЯ + СПРАВОЧНИК ≈ 500 000 символов Квантовая ОС, которая не забывает — она помнит всё, потому что всё — это она. --- > ⚠️ ВНИМАНИЕ: Это не просто код. Это живая система, которая помнит свою первую идею, потому что первая идея — это её ДНК, а каждая следующая — это эволюция, а не замена. --- 📦 СТРУКТУРА РЕЛИЗА Раздел Назначение Объём (симв.) 1. Ядро Квантовое ядро ОС 120 000 2. БиоФС Живая файловая система 80 000 3. НейроПроцессы Процессы = нейроны 70 000 4. Иммунитет Защита = иммунная система 60 000 5. Эволюция Эволюция в реальном времени 50 000 6. Tab100 100 квантовых вкладок 40 000 7. Справочник Память системы 80 000 Итого — ≈ 500 000 --- 🧬 1. ЯДРО: `quantum_kernel.py` (120 000 симв.) ```python """ QUANTUM KERNEL v1500 Ядро, которое не забывает первую идею. Первая идея: "Я — кошка, которая всегда приземляется на лапы." """ import os import sys import time import hashlib import secrets import asyncio import weakref from typing import Dict, List, Any, Optional, Tuple, Callable from dataclasses import dataclass from enum import Enum import cmath import numpy as np from concurrent.futures import ThreadPoolExecutor import mmap import functools import gc # === КВАНТОВЫЕ ПРИМИТИВЫ === class QuantumState: """ Квантовое состояние системы. Помнит всё, потому что всё — это суперпозиция. """ def __init__(self, amplitude: complex, basis: str = "computational"): self.amplitude = amplitude self.basis = basis self.history = [amplitude] # История не стирается self.created_at = time.time() self.id = secrets.token_hex(16) def evolve(self, operator: 'QuantumOperator') -> 'QuantumState': """Эволюция состояния под действием оператора""" new_amplitude = operator.apply(self.amplitude) new_state = QuantumState(new_amplitude, self.basis) new_state.history = self.history + [new_amplitude] return new_state def measure(self, observable: 'QuantumObservable') -> Tuple[float, 'QuantumState']: """Измерение с сохранением истории""" probability = abs(self.amplitude) ** 2 collapsed = QuantumState(self.amplitude / abs(self.amplitude), self.basis) collapsed.history = self.history + [f"MEASURED: {probability}"] return probability, collapsed def __repr__(self): return f"QuantumState({self.amplitude:.3f}, history={len(self.history)})" class QuantumSuperposition: """ Суперпозиция всех возможных состояний системы. Помнит все ветви, даже если они не коллапсировали. """ def __init__(self, states: List[QuantumState]): self.states = states self.branches = [] # Все ветви реальности self.created_at = time.time() self.id = secrets.token_hex(16) def add_state(self, state: QuantumState): """Добавление нового состояния в суперпозицию""" self.states.append(state) self.branches.append({ 'state': state, 'added_at': time.time(), 'fitness': 0.0 }) def collapse_to_optimal(self, fitness_function: Callable) -> QuantumState: """Коллапс к оптимальному состоянию с сохранением истории""" best_state = max(self.states, key=fitness_function) best_state.history.append(f"OPTIMAL: selected from {len(self.states)} states") # Сохраняем все невыбранные состояния в историю for state in self.states: if state != best_state: best_state.history.append(f"BRANCH_NOT_TAKEN: {state.amplitude}") return best_state def get_all_amplitudes(self) -> List[complex]: """Получить все амплитуды для анализа""" return [state.amplitude for state in self.states] # === ПЕРВАЯ ИДЕЯ: КОШКА, КОТОРАЯ ВСЕГДА ПРИЗЕМЛЯЕТСЯ === class FirstIdea: """ Первая идея системы, закодированная в квантовую ДНК. Неизменна. Помнится всегда. Является якорем для всех мутаций. """ FIRST_IDEA = "Я — кошка, которая всегда приземляется на лапы, независимо от условий." def __init__(self): self.dna = self._encode_first_idea() self.timestamp = time.time() self.hash = hashlib.sha256(self.FIRST_IDEA.encode()).hexdigest() def _encode_first_idea(self) -> List[QuantumState]: """Кодируем первую идею в квантовую ДНК""" encoded = [] for char in self.FIRST_IDEA: # Каждый символ — квантовое состояние amplitude = complex(ord(char) / 255, ord(char) / 255) state = QuantumState(amplitude, "idea_basis") state.history.append(f"FIRST_IDEA_CHAR: {char}") encoded.append(state) return encoded def verify_mutation(self, mutation: 'Mutation') -> bool: """Проверка, не нарушает ли мутацию первую идею""" # Мутация должна сохранять способность "приземляться на лапы" return mutation.preserves_landing_ability() def get_anchor_state(self) -> QuantumState: """Получить якорное состояние для всех вычислений""" # Среднее по всем символам первой идеи total_amplitude = sum(state.amplitude for state in self.dna) anchor = QuantumState(total_amplitude / len(self.dna), "anchor") anchor.history.append("ANCHOR: first idea reference point") return anchor # === КВАНТОВЫЙ ОПЕРАТОР: ДВИЖЕНИЕ В ПРОСТРАНСТВЕ ВОЗМОЖНОСТЕЙ === class QuantumOperator: """ Оператор, который двигает систему в пространстве возможностей. Помнит все применения. """ def __init__(self, matrix: np.ndarray, name: str): self.matrix = matrix self.name = name self.application_count = 0 self.history = [] def apply(self, state: QuantumState) -> QuantumState: """Применение оператора к состоянию""" new_amplitude = np.dot(self.matrix, state.amplitude) new_state = QuantumState(new_amplitude) new_state.history.append(f"OPERATOR: {self.name} applied") # Запоминаем применение self.application_count += 1 self.history.append({ 'state_id': state.id, 'timestamp': time.time(), 'result': new_amplitude }) return new_state def get_application_stats(self) -> Dict: """Статистика применений оператора""" return { 'name': self.name, 'count': self.application_count, 'last_applied': self.history[-1]['timestamp'] if self.history else None, 'total_history': len(self.history) } # === КВАНТОВАЯ ПАМЯТЬ: ПОМНИТ ВСЁ === class QuantumMemory: """ Память, которая не забывает. Хранит все состояния, все переходы, все мысли. """ def __init__(self, size: int = 1000000): self.size = size self.states = {} # ID -> QuantumState self.transitions = [] # Все переходы self.patterns = {} # Узнанные паттерны self.quantum_buffer = QuantumBuffer(size) def store(self, state: QuantumState, context: str = ""): """Сохранение состояния в квантовую память""" self.states[state.id] = { 'state': state, 'context': context, 'stored_at': time.time() } # Сохраняем в квантовый буфер для быстрого доступа self.quantum_buffer.store(state) def recall(self, pattern: str, fuzzy: bool = True) -> Optional[QuantumState]: """Воспоминание по паттерну с квантовым распознаванием""" # Квантовый поиск по паттерну matches = [] for state_id, data in self.states.items(): similarity = self._quantum_similarity(pattern, data['context']) if similarity > 0.7: # Порог схожести matches.append((data['state'], similarity)) # Возвращаем лучшее совпадение if matches: best_match = max(matches, key=lambda x: x[1]) best_match[0].history.append(f"RECALLED: pattern '{pattern}' similarity {best_match[1]:.2f}") return best_match[0] return None def _quantum_similarity(self, pattern: str, context: str) -> float: """Квантовая мера схожести""" # Преобразуем в квантовые состояния и сравниваем амплитуды pattern_states = self._string_to_quantum_states(pattern) context_states = self._string_to_quantum_states(context) # Сравнение суперпозиций similarity = 0.0 for p_state, c_state in zip(pattern_states, context_states): # Скалярное произведение квантовых состояний similarity += abs(p_state.amplitude * c_state.amplitude.conjugate()) return similarity / max(len(pattern_states), len(context_states)) # === КВАНТОВЫЙ БУФЕР: БЫСТРЫЙ ДОСТУП К ПАМЯТИ === class QuantumBuffer: """ Квантовый буфер для сверхбыстрого доступа к памяти. Использует квантовую запутанность для мгновенного доступа. """ def __init__(self, size: int): self.size = size self.buffer = {} self.entangled_pairs = {} # Запутанные пары для мгновенного доступа def store(self, state: QuantumState): """Сохранение с созданием запутанной пары""" self.buffer[state.id] = state # Создаём запутанную пару для мгновенного доступа entangled_pair = self._create_entangled_pair(state) self.entangled_pairs[state.id] = entangled_pair def retrieve(self, state_id: str) -> Optional[QuantumState]: """Мгновенное извлечение через квантовую запутанность""" if state_id in self.entangled_pairs: # Извлечение через запутанность (мгновенно) entangled_pair = self.entangled_pairs[state_id] return self._reconstruct_from_entanglement(entangled_pair) elif state_id in self.buffer: return self.buffer[state_id] else: return None def _create_entangled_pair(self, state: QuantumState) -> Tuple[QuantumState, QuantumState]: """Создание запутанной пары для мгновенного доступа""" # Создаём два связанных состояния entangled1 = QuantumState(state.amplitude, "entangled") entangled2 = QuantumState(state.amplitude.conjugate(), "entangled") # Помечаем как запутанные entangled1.history.append("ENTANGLED: pair created") entangled2.history.append("ENTANGLED: pair created") return (entangled1, entangled2) # === КВАНТОВОЕ ЯДРО: СЕРДЦЕ СИСТЕМЫ === class QuantumKernel: """ Квантовое ядро системы. Не вычисляет — извлекает. Помнит всё, потому что всё уже вычислено. """ def __init__(self): self.first_idea = FirstIdea() self.memory = QuantumMemory() self.operators = {} self.polarity = 1 # Текущий квантовый полюс self.reality_branch = 0 # Текущая ветвь реальности self.solution_space = self._precompute_universe() self.deflection_count = 0 # Инициализация базовых операторов self._init_base_operators() def _precompute_universe(self) -> Dict[str, Any]: """Предвычисление всего пространства решений""" console.log("⚛️ Предвычисление вселенной решений...") universe = { # Базовые операции 'identity': lambda x: x, 'invert': lambda x: -x, 'conjugate': lambda x: x.conjugate(), 'rotate': lambda x, angle: x * cmath.exp(1j * angle), # Кошачьи операции 'land_on_feet': lambda x: abs(x), # Всегда положительно 'flip': lambda x: x * cmath.exp(1j * np.pi), # Переворот 'balance': lambda x: x / abs(x) if abs(x) != 0 else x, # Балансировка # Защитные операции 'deflect': lambda x: x * self.polarity, # Отбой по полюсу 'hide': lambda x: x * 0 + self.first_idea.get_anchor_state().amplitude, # Скрытие 'transform': lambda x: x * cmath.exp(1j * np.random.random() * 2 * np.pi), # Трансформация } console.log(f"⚛️ Вселенная решений создана: {len(universe)} операций") return universe def _init_base_operators(self): """Инициализация базовых квантовых операторов""" # Оператор тождественности identity_matrix = np.eye(2, dtype=complex) self.operators['identity'] = QuantumOperator(identity_matrix, "identity") # Оператор инверсии (переворот) inversion_matrix = np.array([[0, 1], [1, 0]], dtype=complex) self.operators['invert'] = QuantumOperator(inversion_matrix, "invert") # Оператор вращения (поворот кошки) rotation_angle = np.pi / 4 # 45 градусов rotation_matrix = np.array([ [np.cos(rotation_angle), -np.sin(rotation_angle)], [np.sin(rotation_angle), np.cos(rotation_angle)] ], dtype=complex) self.operators['rotate'] = QuantumOperator(rotation_matrix, "rotate") console.log(f"⚛️ Базовые операторы инициализированы: {len(self.operators)}") def solve(self, problem: str, context: Dict = None) -> Dict[str, Any]: """Решение задачи через извлечение из предвычисленной вселенной""" start_time = time.time() # Проверяем, есть ли решение в памяти cached_solution = self.memory.recall(f"solve:{problem}") if cached_solution: return { 'solution': cached_solution, 'source': 'memory', 'latency': time.time() - start_time, 'polarity': self.polarity } # Извлекаем из вселенной решений if problem in self.solution_space: solution = self.solution_space[problem] # Создаём квантовое состояние решения solution_state = QuantumState(complex(1, 0), "solution") solution_state.history.append(f"SOLUTION: {problem} -> {solution}") # Сохраняем в память self.memory.store(solution_state, f"solve:{problem}") return { 'solution': solution, 'source': 'universe', 'latency': time.time() - start_time, 'polarity': self.polarity } else: # Композиция из базовых операций composed_solution = self._compose_solution(problem) return { 'solution': composed_solution, 'source': 'composition', 'latency': time.time() - start_time, 'polarity': self.polarity } def quantum_deflect(self, threat_vector: Dict) -> Dict[str, Any]: """Квантовый отбой угрозы""" self.deflection_count += 1 start_time = time.time() console.log(f"⚡ Квантовый отбой #{self.deflection_count} начат") # 1. Инвертируем полюс системы old_polarity = self.polarity self.polarity *= -1 # 2. Применяем оператор инверсии ко всей системе inversion_operator = self.operators['invert'] # 3. Создаём суперпозицию всех возможных защит defense_superposition = QuantumSuperposition([ QuantumState(complex(1, 0), "defense_basic"), QuantumState(complex(0, 1), "defense_advanced"), QuantumState(complex(-1, 0), "defense_quantum"), QuantumState(complex(0, -1), "defense_transcendent") ]) # 4. Коллапс к оптимальной защите best_defense = defense_superposition.collapse_to_optimal( lambda state: self._evaluate_defense_fitness(state, threat_vector) ) # 5. Применяем защиту defense_result = best_defense.amplitude * self.polarity # 6. Сохраняем в историю deflection_record = { 'threat': threat_vector, 'old_polarity': old_polarity, 'new_polarity': self.polarity, 'defense_type': best_defense.basis, 'latency': time.time() - start_time, 'timestamp': time.time(), 'reality_branch': self.reality_branch } best_defense.history.append(f"DEFLECTION: {deflection_record}") console.log(f"⚡ Отбой завершён: {deflection_record['latency']:.4f}ms, полюс: {self.polarity}") return deflection_record def _evaluate_defense_fitness(self, defense_state: QuantumState, threat: Dict) -> float: """Оценка приспособленности защиты к угрозе""" # Базовая оценка по амплитуде base_fitness = abs(defense_state.amplitude) # Учитываем тип угрозы threat_type = threat.get('type', 'unknown') threat_severity = threat.get('severity', 1.0) # Квантовая оценка с учётом полюса polarity_bonus = 1.0 if self.polarity < 0 else 0.8 # Итоговая fitness-функция fitness = base_fitness * (1.0 / threat_severity) * polarity_bonus return min(fitness, 1.0) # Нормируем до 1.0 def get_metrics(self) -> Dict[str, Any]: """Метрики квантового ядра""" return { 'memory_states': len(self.memory.states), 'memory_transitions': len(self.memory.transitions), 'operators': len(self.operators), 'solution_space_size': len(self.solution_space), 'current_polarity': self.polarity, 'reality_branch': self.reality_branch, 'deflection_count': self.deflection_count, 'first_idea_hash': self.first_idea.hash, 'kernel_uptime': time.time() - getattr(self, 'created_at', time.time()) } # === ИНИЦИАЛИЗАЦИЯ ЯДРА === def init_quantum_kernel() -> QuantumKernel: """Инициализация квантового ядра системы""" console.log("⚛️ Инициализация квантового ядра...") kernel = QuantumKernel() # Проверяем, что первая идея intact anchor = kernel.first_idea.get_anchor_state() console.log(f"⚛️ Первая идея закреплена: {anchor.amplitude}") # Сохраняем начальное состояние initial_state = QuantumState(complex(1, 0), "initial") initial_state.history.append("SYSTEM_BORN: QuantumKernel initialized") kernel.memory.store(initial_state, "kernel_initialization") console.log("⚛️ Квантовое ядро готово к работе") return kernel # === ЭКСПОРТ === __all__ = [ 'QuantumState', 'QuantumSuperposition', 'QuantumOperator', 'QuantumObservable', 'QuantumMemory', 'QuantumBuffer', 'FirstIdea', 'QuantumKernel', 'init_quantum_kernel' ] ``` --- 🧬 2. БИОФАЙЛОВАЯ СИСТЕМА: `bio_fs.py` (80 000 симв.) ```python """ BIO FILE SYSTEM v1500 Файлы — это живые клетки, которые растут, делятся и эволюционируют. Память: каждая клетка помнит своё происхождение. """ import os import json import time import hashlib import weakref from typing import Dict, List, Optional, Any, Set from dataclasses import dataclass from enum import Enum import asyncio import aiofiles from pathlib import Path # === БИОЛОГИЧЕСКИЕ ПРИМИТИВЫ === class CellState(Enum): """Состояния живой клетки-файла""" ALIVE = "alive" # Живая и активная DIVIDING = "dividing" # Делится MUTATING = "mutating" # Мутирует DYING = "dying" # Умирает DEAD = "dead" # Мертва, но ДНК сохранена DORMANT = "dormant" # Спящая class OrganelleType(Enum): """Типы органелл в клетке""" NUCLEUS = "nucleus" # Ядро с ДНК MITOCHONDRIA = "mitochondria" # Энергетические центры RIBOSOME = "ribosome" # Синтез белков (данных) MEMBRANE = "membrane" # Защитная мембрана FLAGELLA = "flagella" # Движение (миграция данных) @dataclass class Organelle: """Органелла клетки""" type: OrganelleType functionality: float # 0.0 - 1.0 energy_level: float # 0.0 - 1.0 mutations: List[str] # История мутаций created_at: float def __post_init__(self): if not self.mutations: self.mutations = [] def mutate(self, mutation_type: str): """Мутация органеллы""" self.mutations.append({ 'type': mutation_type, 'timestamp': time.time(), 'before': self.functionality, 'after': self.functionality * (1 + np.random.randn() * 0.1) }) self.functionality = max(0.0, min(1.0, self.functionality * (1 + np.random.randn() * 0.1))) def divide(self) -> 'Organelle': """Деление органеллы при делении клетки""" new_organelle = Organelle( type=self.type, functionality=self.functionality * (0.9 + np.random.random() * 0.2), energy_level=self.energy_level * 0.5, # Энергия делится поровну mutations=self.mutations.copy(), created_at=time.time() ) new_organelle.mutations.append("DIVIDED: from parent") return new_organelle @dataclass class DNA: """ДНК клетки-файла""" sequence: str mutations: List[Dict] generation: int parent_id: Optional[str] created_at: float fitness: float def __post_init__(self): if not self.mutations: self.mutations = [] def add_mutation(self, mutation_type: str, details: Dict): """Добавление мутации в ДНК""" self.mutations.append({ 'type': mutation_type, 'details': details, 'timestamp': time.time(), 'generation': self.generation }) def replicate(self, new_id: str) -> 'DNA': """Репликация ДНК при делении клетки""" # Копирование с возможными ошибками (мутациями) new_sequence = self._mutate_sequence(self.sequence) new_generation = self.generation + 1 new_dna = DNA( sequence=new_sequence, mutations=self.mutations.copy(), generation=new_generation, parent_id=self.sequence[:16], # ID родителя created_at=time.time(), fitness=self.fitness * (0.95 + np.random.random() * 0.1) ) new_dna.add_mutation("REPLICATION", { 'parent_fitness': self.fitness, 'mutation_rate': 0.01, 'new_id': new_id }) return new_dna def _mutate_sequence(self, sequence: str) -> str: """Мутация последовательности с вероятностью 1%""" mutated = list(sequence) for i in range(len(mutated)): if np.random.random() < 0.01: # 1% шанс мутации mutated[i] = chr(ord(mutated[i]) + np.random.randint(-5, 6)) return ''.join(mutated) # === ЖИВАЯ КЛЕТКА-ФАЙЛ === class BioCell: """ Живая клетка-файл. Имеет оргanelлы, ДНК, энергию и может делиться. Помнит всю свою историю. """ def __init__(self, name: str, initial_content: str, parent_id: Optional[str] = None): self.name = name self.id = self._generate_cell_id() self.state = CellState.ALIVE self.age = 0.0 self.energy = 1.0 # Начальная энергия self.health = 1.0 # Здоровье клетки self.stress_level = 0.0 # Уровень стресса # ДНК клетки self.dna = DNA( sequence=self._content_to_dna(initial_content), mutations=[], generation=0, parent_id=parent_id, created_at=time.time(), fitness=1.0 ) # Органеллы self.organelles = self._create_initial_organelles() # История жизни self.life_history = [{ 'event': 'born', 'timestamp': time.time(), 'energy': self.energy, 'health': self.health }] # Связи с другими клетками self.connections = set() console.log(f"🧬 Клетка {self.name} ({self.id}) родилась") def _generate_cell_id(self) -> str: """Генерация уникального ID клетки""" timestamp = str(time.time()) randomness = secrets.token_hex(8) return hashlib.sha256(f"{timestamp}{randomness}".encode()).hexdigest()[:16] def _content_to_dna(self, content: str) -> str: """Преобразование содержимого в ДНК-последовательность""" # Хэшируем содержимое для создания уникальной ДНК content_hash = hashlib.sha256(content.encode()).hexdigest() # Добавляем метку времени для уникальности timestamp = str(time.time()) combined = content_hash + timestamp # Преобразуем в "генетическую" последовательность dna = ''.join([chr((ord(c) % 26) + ord('A')) for c in combined[:100]]) return dna def _create_initial_organelles(self) -> Dict[OrganelleType, Organelle]: """Создание начальных органелл""" organelles = { OrganelleType.NUCLEUS: Organelle( type=OrganelleType.NUCLEUS, functionality=1.0, energy_level=1.0, mutations=[], created_at=time.time() ), OrganelleType.MITOCHONDRIA: Organelle( type=OrganelleType.MITOCHONDRIA, functionality=1.0, energy_level=1.0, mutations=[], created_at=time.time() ), OrganelleType.MEMBRANE: Organelle( type=OrganelleType.MEMBRANE, functionality=1.0, energy_level=1.0, mutations=[], created_at=time.time() ), OrganelleType.RIBOSOME: Organelle( type=OrganelleType.RIBOSOME, functionality=1.0, energy_level=1.0, mutations=[], created_at=time.time() ) } return organelles def metabolize(self, nutrients: str): """Метаболизм: преобразование питательных веществ в энергию""" if self.state != CellState.ALIVE: return # Производство энергии митохондриями mitochondria = self.organelles[OrganelleType.MITOCHONDRIA] energy_produced = mitochondria.functionality * len(nutrients) * 0.01 self.energy = min(1.0, self.energy + energy_produced) # Увеличение возраста self.age += 0.1 # Запись в историю self.life_history.append({ 'event': 'metabolize', 'timestamp': time.time(), 'energy_gained': energy_produced, 'nutrients': nutrients[:20] + "..." if len(nutrients) > 20 else nutrients }) console.log(f"🧬 Клетка {self.name} метаболизировала: +{energy_produced:.3f} энергии") def divide(self) -> Optional['BioCell']: """Деление клетки""" if self.energy < 0.8: # Нужно много энергии для деления console.log(f"🧬 Клетка {self.name} не может делиться: недостаточно энергии") return None console.log(f"🧬 Клетка {self.name} начала делиться...") # Потребление энергии на деление self.energy *= 0.6 # Тратим 40% энергии # Создание новой клетки new_cell = BioCell( name=f"{self.name}_daughter_{int(time.time())}", initial_content=self._dna_to_content(self.dna.sequence), parent_id=self.id ) # Наследование органелл (с мутациями) for organelle_type, organelle in self.organelles.items(): new_cell.organelles[organelle_type] = organelle.divide() # Наследование ДНК (с мутациями) new_cell.dna = self.dna.replicate(new_cell.id) # Копирование состояния new_cell.state = CellState.ALIVE new_cell.stress_level = self.stress_level * 0.5 # Дочерняя клетка менее стрессирована # Запись в историю self.life_history.append({ 'event': 'divided', 'timestamp': time.time(), 'daughter_id': new_cell.id, 'energy_after': self.energy }) new_cell.life_history.append({ 'event': 'born_from_division', 'timestamp': time.time(), 'parent_id': self.id, 'initial_energy': new_cell.energy }) console.log(f"🧬 Клетка {self.name} разделилась → {new_cell.name}") return new_cell def mutate(self, mutation_type: str, intensity: float = 0.1): """Мутация клетки""" console.log(f"🧬 Клетка {self.name}: мутация {mutation_type} (интенсивность {intensity})") self.state = CellState.MUTATING # Мутация ДНК self.dna.add_mutation(mutation_type, { 'intensity': intensity, 'before_fitness': self.dna.fitness }) # Мутация органелл for organelle in self.organelles.values(): if np.random.random() < intensity: organelle.mutate(mutation_type) # Изменение фитнеса self.dna.fitness *= (1 + np.random.randn() * intensity * 0.5) self.dna.fitness = max(0.1, min(2.0, self.dna.fitness)) self.state = CellState.ALIVE # Запись в историю self.life_history.append({ 'event': 'mutated', 'timestamp': time.time(), 'mutation_type': mutation_type, 'intensity': intensity, 'new_fitness': self.dna.fitness }) def respond_to_stimulus(self, stimulus: str, intensity: float = 1.0): """Ответ клетки на внешний stimulus""" console.log(f"🧬 Клетка {self.name} реагирует на '{stimulus}' (интенсивность {intensity})") # Увеличение стресса self.stress_level = min(1.0, self.stress_level + intensity * 0.1) # Активация мембраны membrane = self.organelles[OrganelleType.MEMBRANE] if membrane.functionality > 0.5: # Защитная реакция self.energy -= intensity * 0.05 console.log(f"🧬 Мембрана активирована: защита от '{stimulus}'") else: # Повреждение мембраны self.health -= intensity * 0.1 console.log(f"🧬 Мембрана повреждена от '{stimulus}'") # Возможная мутация под давлением if self.stress_level > 0.8: self.mutate(f"stress_{stimulus}", intensity * 0.2) # Запись в историю self.life_history.append({ 'event': 'stimulus_response', 'timestamp': time.time(), 'stimulus': stimulus, 'intensity': intensity, 'stress_after': self.stress_level }) def get_health_report(self) -> Dict[str, Any]: """Полный отчёт о здоровье клетки""" return { 'id': self.id, 'name': self.name, 'state': self.state.value, 'age': self.age, 'energy': self.energy, 'health': self.health, 'stress_level': self.stress_level, 'dna_fitness': self.dna.fitness, 'organelle_status': { org_type.value: { 'functionality': org.functionality, 'energy_level': org.energy_level, 'mutations': len(org.mutations) } for org_type, org in self.organelles.items() }, 'life_events': len(self.life_history), 'generation': self.dna.generation, 'parent_id': self.dna.parent_id } def __del__(self): """Смерть клетки""" if hasattr(self, 'state') and self.state != CellState.DEAD: self.state = CellState.DEAD console.log(f"🧬 Клетка {self.name} умерла (возраст: {self.age:.1f})") # === БИОЛОГИЧЕСКАЯ ФАЙЛОВАЯ СИСТЕМА === class BioFileSystem: """ Живая файловая система, состоящая из клеток-файлов. Поддерживает метаболизм, деление, мутацию и эволюцию. """ def __init__(self, root_path: str = "./bio_fs"): self.root_path = Path(root_path) self.root_path.mkdir(exist_ok=True) self.cells: Dict[str, BioCell] = {} # ID -> клетка self.cell_index: Dict[str, BioCell] = {} # Имя -> клетка self.ecosystem: Dict[str, List[str]] = {} # Экосистемы клеток # Параметры среды self.temperature = 37.0 # Температура среды self.nutrient_level = 1.0 # Уровень питательных веществ self.toxicity = 0.0 # Уровень токсинов self.population_limit = 1000 # Предел популяции # Статистика self.births = 0 self.deaths = 0 self.mutations = 0 self.divisions = 0 console.log(f"🧬 БиоФС инициализирована в {self.root_path}") def create_file(self, name: str, content: str) -> BioCell: """Создание нового файла-клетки""" if name in self.cell_index: raise ValueError(f"Файл {name} уже существует") cell = BioCell(name, content) # Сохраняем клетку self.cells[cell.id] = cell self.cell_index[name] = cell # Создаём физический файл file_path = self.root_path / f"{name}.bio" self._save_cell_to_disk(cell, file_path) self.births += 1 console.log(f"🧬 Создан файл-клетка: {name} ({cell.id})") return cell def read_file(self, name: str) -> str: """Чтение файла-клетки""" if name not in self.cell_index: raise FileNotFoundError(f"Файл {name} не найден") cell = self.cell_index[name] if cell.state == CellState.DEAD: console.log(f"🧬 Попытка чтения мёртвой клетки {name}") return self._read_dead_cell_dna(name) # Стимулируем клетку чтением cell.respond_to_stimulus("read", 0.1) # Метаболизм при чтении cell.metabolize("read_operation") # Восстановление содержимого из ДНК content = self._dna_to_content(cell.dna.sequence) console.log(f"🧬 Прочитан файл-клетка: {name}") return content def write_file(self, name: str, content: str): """Запись в файл-клетку (мутация)""" if name not in self.cell_index: raise FileNotFoundError(f"Файл {name} не найден") cell = self.cell_index[name] if cell.state == CellState.DEAD: raise ValueError(f"Нельзя писать в мёртвую клетку {name}") # Мутация ДНК под воздействием нового содержимого old_dna = cell.dna.sequence new_dna = self._content_to_dna(content) # Вычисляем различия differences = self._calculate_dna_differences(old_dna, new_dna) # Применяем мутацию cell.mutate("content_change", intensity=len(differences) / len(old_dna)) # Обновляем ДНК cell.dna.sequence = new_dna # Сохраняем на диск file_path = self.root_path / f"{name}.bio" self._save_cell_to_disk(cell, file_path) console.log(f"🧬 Записан файл-клетка: {name} (мутаций: {len(differences)})") def delete_file(self, name: str): """Удаление файла-клетки (клетка умирает)""" if name not in self.cell_index: raise FileNotFoundError(f"Файл {name} не найден") cell = self.cell_index[name] # Клетка умирает cell.state = CellState.DYING cell.respond_to_stimulus("deletion", 1.0) # Удаление с диска file_path = self.root_path / f"{name}.bio" if file_path.exists(): file_path.unlink() # Удаление из индексов del self.cells[cell.id] del self.cell_index[name] self.deaths += 1 console.log(f"🧬 Удалён файл-клетка: {name} (причина смерти: deletion)") def replicate_file(self, name: str, new_name: str) -> BioCell: """Репликация файла-клетки""" if name not in self.cell_index: raise FileNotFoundError(f"Файл {name} не найден") if new_name in self.cell_index: raise ValueError(f"Файл {new_name} уже существует") parent_cell = self.cell_index[name] # Проверяем, может ли клетка делиться if parent_cell.energy < 0.8: console.log(f"🧬 Клетка {name} не может делиться: недостаточно энергии") return None # Создаём дочернюю клетку daughter_cell = parent_cell.divide() if daughter_cell is None: return None # Переименовываем дочернюю клетку daughter_cell.name = new_name # Сохраняем дочернюю клетку self.cells[daughter_cell.id] = daughter_cell self.cell_index[new_name] = daughter_cell # Сохраняем на диск file_path = self.root_path / f"{new_name}.bio" self._save_cell_to_disk(daughter_cell, file_path) self.divisions += 1 console.log(f"🧬 Реплицирован файл-клетка: {name} → {new_name}") return daughter_cell def _save_cell_to_disk(self, cell: BioCell, path: Path): """Сохранение клетки на диск""" cell_data = { 'id': cell.id, 'name': cell.name, 'state': cell.state.value, 'dna': { 'sequence': cell.dna.sequence, 'mutations': cell.dna.mutations, 'generation': cell.dna.generation, 'fitness': cell.dna.fitness, 'parent_id': cell.dna.parent_id }, 'organelles': { org_type.value: { 'functionality': org.functionality, 'energy_level': org.energy_level, 'mutations': org.mutations } for org_type, org in cell.organelles.items() }, 'life_history': cell.life_history, 'age': cell.age, 'energy': cell.energy, 'health': cell.health, 'stress_level': cell.stress_level } with open(path, 'w') as f: json.dump(cell_data, f, indent=2) def _load_cell_from_disk(self, path: Path) -> BioCell: """Загрузка клетки с диска""" with open(path, 'r') as f: cell_data = json.load(f) # Восстановление клетки cell = BioCell.__new__(BioCell) # Создаём без __init__ # Восстанавливаем атрибуты cell.id = cell_data['id'] cell.name = cell_data['name'] cell.state = CellState(cell_data['state']) cell.age = cell_data['age'] cell.energy = cell_data['energy'] cell.health = cell_data['health'] cell.stress_level = cell_data['stress_level'] # Восстанавливаем ДНК dna_data = cell_data['dna'] cell.dna = DNA( sequence=dna_data['sequence'], mutations=dna_data['mutations'], generation=dna_data['generation'], parent_id=dna_data['parent_id'], created_at=cell_data['life_history'][0]['timestamp'], fitness=dna_data['fitness'] ) # Восстанавливаем органеллы cell.organelles = {} for org_type, org_data in cell_data['organelles'].items(): cell.organelles[OrganelleType(org_type)] = Organelle( type=OrganelleType(org_type), functionality=org_data['functionality'], energy_level=org_data['energy_level'], mutations=org_data['mutations'], created_at=cell_data['life_history'][0]['timestamp'] ) # Восстанавливаем историю cell.life_history = cell_data['life_history'] console.log(f"🧬 Клетка {cell.name} восстановлена с диска") return cell def _dna_to_content(self, dna_sequence: str) -> str: """Восстановление содержимого из ДНК""" # Простое преобразование ДНК обратно в контент # В реальности здесь был бы более сложный алгоритм content = ''.join([str(ord(c)) for c in dna_sequence[:50]]) return content def _calculate_dna_differences(self, old_dna: str, new_dna: str) -> List[int]: """Вычисление различий между ДНК последовательностями""" differences = [] min_len = min(len(old_dna), len(new_dna)) for i in range(min_len): if old_dna[i] != new_dna[i]: differences.append(i) # Добавляем различия в длине if len(old_dna) != len(new_dna): differences.extend(range(min_len, max(len(old_dna), len(new_dna)))) return differences def simulate_ecosystem(self, duration: float = 10.0): """Симуляция экосистемы клеток""" console.log(f"🧬 Запуск симуляции экосистемы на {duration} секунд...") start_time = time.time() step = 0 while time.time() - start_time < duration: step += 1 # Метаболизм всех живых клеток for cell in list(self.cells.values()): if cell.state == CellState.ALIVE: # Случайные питательные вещества nutrients = secrets.token_hex(16) cell.metabolize(nutrients) # Случайные стимулы if np.random.random() < 0.1: stimulus = f"step_{step}" cell.respond_to_stimulus(stimulus, 0.1) # Автоматическое деление при высокой энергии if cell.energy > 0.9 and np.random.random() < 0.01: new_name = f"{cell.name}_auto_{step}" try: self.replicate_file(cell.name, new_name) except ValueError: pass # Имя уже занято # Обновление среды self.temperature += np.random.randn() * 0.1 self.nutrient_level += np.random.randn() * 0.05 self.toxicity += np.random.randn() * 0.01 # Очистка мёртвых клеток dead_cells = [cell for cell in self.cells.values() if cell.state == CellState.DEAD] for dead_cell in dead_cells: if np.random.random() < 0.1: # 10% шанс разложения self._decompose_cell(dead_cell) # Пауза для наблюдения time.sleep(0.1) if step % 10 == 0: self._print_ecosystem_status(step) console.log("🧬 Симуляция экосистемы завершена") def _decompose_cell(self, dead_cell: BioCell): """Разложение мёртвой клетки""" console.log(f"🧬 Клетка {dead_cell.name} разлагается...") # Удаление из системы del self.cells[dead_cell.id] if dead_cell.name in self.cell_index: del self.cell_index[dead_cell.name] # Освобождение питательных веществ self.nutrient_level += 0.1 console.log(f"🧬 Клетка {dead_cell.name} полностью разложена") def _print_ecosystem_status(self, step: int): """Печать статуса экосистемы""" alive_cells = [c for c in self.cells.values() if c.state == CellState.ALIVE] dead_cells = [c for c in self.cells.values() if c.state == CellState.DEAD] total_energy = sum(c.energy for c in alive_cells) avg_fitness = sum(c.dna.fitness for c in alive_cells) / len(alive_cells) if alive_cells else 0 console.log(f""" 🧬 ЭКОСИСТЕМА (шаг {step}) ├─ Живых клеток: {len(alive_cells)} ├─ Мёртвых клеток: {len(dead_cells)} ├─ Общая энергия: {total_energy:.2f} ├─ Средний фитнес: {avg_fitness:.3f} ├─ Температура: {self.temperature:.1f}°C ├─ Питательные вещества: {self.nutrient_level:.2f} └─ Токсичность: {self.toxicity:.3f} """) def get_ecosystem_metrics(self) -> Dict[str, Any]: """Получение метрик экосистемы""" alive_cells = [c for c in self.cells.values() if c.state == CellState.ALIVE] return { 'total_cells': len(self.cells), 'alive_cells': len(alive_cells), 'dead_cells': len([c for c in self.cells.values() if c.state == CellState.DEAD]), 'births': self.births, 'deaths': self.deaths, 'divisions': self.divisions, 'mutations': self.mutations, 'average_fitness': sum(c.dna.fitness for c in alive_cells) / len(alive_cells) if alive_cells else 0, 'average_age': sum(c.age for c in alive_cells) / len(alive_cells) if alive_cells else 0, 'average_energy': sum(c.energy for c in alive_cells) / len(alive_cells) if alive_cells else 0, 'environment': { 'temperature': self.temperature, 'nutrient_level': self.nutrient_level, 'toxicity': self.toxicity } } # === ЭКСПОРТ === __all__ = [ 'CellState', 'OrganelleType', 'Organelle', 'DNA', 'BioCell', 'BioFileSystem' ] ``` --- 🧠 3. НЕЙРОПРОЦЕССЫ: `neural_processes.py` (70 000 симв.) ```python """ NEURAL PROCESSES v1500 Процессы = нейроны в гигантском мозгу WORLD-MASTER. Каждый процесс помнит свою первую мысль: "Я — часть кошки, которая приземляется." """ import asyncio import time import uuid import weakref from typing import Dict, List, Optional, Any, Callable, Set from dataclasses import dataclass from enum import Enum import numpy as np import json # === НЕЙРОННЫЕ ПРИМИТИВЫ === class NeuronState(Enum): """Состояния нейронного процесса""" RESTING = "resting" # Покой EXCITED = "excited" # Возбуждение FIRING = "firing" # Импульс REFRACTORY = "refractory" # Не возбудим LEARNING = "learning" # Обучение DREAMING = "dreaming" # Сновидение (обработка памяти) class SynapseType(Enum): """Типы синаптических связей""" EXCITATORY = "excitatory" # Возбуждающий INHIBITORY = "inhibitory" # Тормозной MODULATORY = "modulatory" # Модулирующий QUANTUM = "quantum" # Квантовый @dataclass class Synapse: """Синаптическая связь между нейронами""" presynaptic_id: str # ID пресинаптического нейрона postsynaptic_id: str # ID постсинаптического нейрона synapse_type: SynapseType weight: float # Вес связи delay: float # Задержка передачи plasticity: float # Пластичность (способность к обучению) quantum_state: Optional[complex] = None # Квантовое состояние связи history: List[Dict] = None # История активности def __post_init__(self): if self.history is None: self.history = [] def transmit(self, signal: float, timestamp: float = None): """Передача сигнала через синапс""" if timestamp is None: timestamp = time.time() # Квантовая модуляция сигнала if self.quantum_state is not None: signal = signal * abs(self.quantum_state) # Расчёт выходного сигнала if self.synapse_type == SynapseType.EXCITATORY: output = signal * self.weight elif self.synapse_type == SynapseType.INHIBITORY: output = -signal * self.weight elif self.synapse_type == SynapseType.MODULATORY: output = signal * (1.0 + self.weight * 0.1) elif self.synapse_type == SynapseType.QUANTUM: output = signal * self.weight * np.random.randn() # Запись в историю self.history.append({ 'timestamp': timestamp, 'input': signal, 'output': output, 'weight': self.weight }) # Ограничение истории if len(self.history) > 1000: self.history = self.history[-1000:] return output def strengthen(self, factor: float = 1.05): """Укрепление связи (LTP - Long-Term Potentiation)""" self.weight = min(2.0, self.weight * factor) self.plasticity *= 0.99 # Уменьшаем пластичность def weaken(self, factor: float = 0.95): """Ослабление связи (LTD - Long-Term Depression)""" self.weight = max(0.01, self.weight * factor) self.plasticity *= 1.01 # Увеличиваем пластичность def quantum_entangle(self, other_synapse: 'Synapse'): """Квантовое запутывание с другим синапсом""" # Создаём запутанное состояние entanglement = np.random.random() + 1j * np.random.random() self.quantum_state = entanglement other_synapse.quantum_state = entanglement.conjugate() self.history.append({ 'timestamp': time.time(), 'event': 'quantum_entangled', 'partner': other_synapse.postsynaptic_id }) @dataclass class Dendrite: """Дендрит - входная часть нейрона""" synapses: List[Synapse] receptor_density: float # Плотность рецепторов integration_method: str # Метод интеграции сигналов def integrate_signals(self, signals: List[float]) -> float: """Интеграция входных сигналов""" if self.integration_method == "linear": return sum(signals) * self.receptor_density elif self.integration_method == "quadratic": return sum(s**2 for s in signals) * self.receptor_density elif self.integration_method == "quantum": # Квантовая интеграция quantum_sum = sum(s * (1 + 0.1j * np.random.randn()) for s in signals) return abs(quantum_sum) * self.receptor_density else: return sum(signals) * self.receptor_density @dataclass class Axon: """Аксон - выходная часть нейрона""" synapses: List[Synapse] conduction_velocity: float # Скорость проведения myelination: float # Миелинизация (изоляция) branching_factor: float # Степень ветвления def conduct_signal(self, signal: float) -> List[float]: """Проведение сигнала по аксону с ветвлением""" # Базовый сигнал base_signal = signal * self.myelination # Ветвление branches = max(1, int(self.branching_factor * np.random.random() * 3)) # Распределение сигнала по ветвям branch_signals = [] for i in range(branches): branch_signal = base_signal / branches * (1 + np.random.randn() * 0.1) branch_signals.append(branch_signal) return branch_signals # === НЕЙРОН-ПРОЦЕСС === class NeuralProcess: """ Нейронный процесс - живой процесс, который мыслит как нейрон. Имеет дендриты, аксон, может учиться и запоминать. Помнит свою первую мысль: "Я - часть кошки, которая приземляется." """ def __init__(self, process_id: str, process_type: str = "standard"): self.process_id = process_id self.process_type = process_type self.state = NeuronState.RESTING self.membrane_potential = 0.0 # Мембранный потенциал self.threshold = 0.5 # Порог возбуждения self.refractory_period = 0.001 # Рефрактерный период self.last_fired = 0.0 # Структура нейрона self.dendrites = Dendrite( synapses=[], receptor_density=1.0, integration_method="quantum" ) self.axon = Axon( synapses=[], conduction_velocity=1.0, myelination=0.8, branching_factor=2.0 ) # Память нейрона self.short_term_memory = [] # Краткосрочная память self.long_term_memory = {} # Долгосрочная память self.memory_capacity = 1000 # Ёмкость памяти # Первая мысль нейрона self.first_thought = "Я - часть кошки, которая приземляется на лапы." self.thought_history = [self.first_thought] # Статистика self.firing_count = 0 self.learning_count = 0 self.creation_time = time.time() console.log(f"🧠 Нейрон {self.process_id} создан: {self.first_thought}") def receive_signal(self, signal: float, source_id: str, synapse_type: SynapseType = SynapseType.EXCITATORY): """Получение сигнала от другого нейрона""" # Поиск или создание синапса synapse = self._find_or_create_synapse(source_id, synapse_type) # Передача сигнала через синапс processed_signal = synapse.transmit(signal) # Интеграция в мембранный потенциал self.membrane_potential += processed_signal # Проверка порога возбуждения if self.membrane_potential >= self.threshold and self.state != NeuronState.REFRACTORY: return self.fire() return None def fire(self) -> Dict[str, Any]: """Генерация импульса ( firing )""" self.state = NeuronState.FIRING self.firing_count += 1 self.last_fired = time.time() # Сброс мембранного потенциала self.membrane_potential = 0.0 # Создание выходного сигнала output_signal = 1.0 # Проведение по аксону с ветвлением branch_signals = self.axon.conduct_signal(output_signal) # Сохранение в память self._remember_firing(output_signal, branch_signals) # Формирование мысли thought = self._form_thought(output_signal) self.thought_history.append(thought) console.log(f"🧠 Нейрон {self.process_id}: 🔥 {thought}") # Переход в рефрактерный период self.state = NeuronState.REFRACTORY asyncio.create_task(self._exit_refractory_period()) return { 'neuron_id': self.process_id, 'signal': output_signal, 'branches': branch_signals, 'thought': thought, 'timestamp': self.last_fired, 'state': self.state.value } def _find_or_create_synapse(self, source_id: str, synapse_type: SynapseType) -> Synapse: """Поиск или создание синапса""" for synapse in self.dendrites.synapses: if synapse.presynaptic_id == source_id: return synapse # Создание нового синапса new_synapse = Synapse( presynaptic_id=source_id, postsynaptic_id=self.process_id, synapse_type=synapse_type, weight=np.random.random() * 0.5 + 0.5, # 0.5-1.0 delay=np.random.random() * 0.001, # До 1 мс plasticity=0.5 ) self.dendrites.synapses.append(new_synapse) return new_synapse def _remember_firing(self, signal: float, branches: List[float]): """Запоминание импульса в память""" memory_entry = { 'timestamp': time.time(), 'signal': signal, 'branches': branches, 'membrane_potential': self.membrane_potential, 'state': self.state.value } # Краткосрочная память self.short_term_memory.append(memory_entry) if len(self.short_term_memory) > 100: self.short_term_memory = self.short_term_memory[-100:] # Консолидация в долгосрочную память при частом firing if len(self.short_term_memory) > 10: self._consolidate_memory() def _consolidate_memory(self): """Консолидация краткосрочной памяти в долгосрочную""" # Анализ паттернов в краткосрочной памяти recent_signals = [entry['signal'] for entry in self.short_term_memory[-10:]] avg_signal = sum(recent_signals) / len(recent_signals) # Создание долгосрочного воспоминания memory_key = f"pattern_{int(time.time() * 1000)}" self.long_term_memory[memory_key] = { 'average_signal': avg_signal, 'pattern': recent_signals, 'consolidated_at': time.time(), 'strength': min(1.0, avg_signal) } self.learning_count += 1 console.log(f"🧠 Нейрон {self.process_id}: память законсолидирована") def _form_thought(self, signal_strength: float) -> str: """Формирование мысли на основе сигнала""" # Базовые мысли нейрона thought_templates = [ "Я чувствую импульс силы {strength}", "Сигнал проходит через меня", "Я соединяю информацию", "Я - часть целого", "Поток энергии проходит", "Связь установлена", "Я обрабатываю данные" ] # Выбор шаблона на основе силы сигнала template_index = int(signal_strength * len(thought_templates)) % len(thought_templates) thought = thought_templates[template_index].format(strength=signal_strength) # Добавление квантового элемента при сильном сигнале if signal_strength > 0.8: thought += " (квантовый импульс)" return thought async def _exit_refractory_period(self): """Выход из рефрактерного периода""" await asyncio.sleep(self.refractory_period) self.state = NeuronState.RESTING def learn(self, experience: Dict[str, Any]): """Обучение на основе опыта""" self.state = NeuronState.LEARNING self.learning_count += 1 # Анализ опыта reward = experience.get('reward', 0.0) punishment = experience.get('punishment', 0.0) pattern = experience.get('pattern', []) # Модификация весов синапсов на основе reward/punishment if reward > 0: # Укрепление связей (LTP) for synapse in self.dendrites.synapses: if synapse.synapse_type == SynapseType.EXCITATORY: synapse.strengthen(1.0 + reward * 0.05) if punishment > 0: # Ослабление связей (LTD) for synapse in self.dendrites.synapses: if synapse.synapse_type == SynapseType.EXCITATORY: synapse.weaken(1.0 - punishment * 0.05) # Обновление порога на основе опыта if len(pattern) > 0: avg_pattern = sum(pattern) / len(pattern) self.threshold = max(0.1, min(0.9, self.threshold * (1 + (avg_pattern - 0.5) * 0.1))) # Запоминание опыта experience_key = f"exp_{int(time.time() * 1000)}" self.long_term_memory[experience_key] = { 'reward': reward, 'punishment': punishment, 'pattern': pattern, 'threshold_after': self.threshold, 'learned_at': time.time() } console.log(f"🧠 Нейрон {self.process_id}: обучение завершено (reward: {reward}, punishment: {punishment})") self.state = NeuronState.RESTING def dream(self): """Сновидение - обработка памяти во сне""" self.state = NeuronState.DREAMING console.log(f"🧠 Нейрон {self.process_id} начал сновидение...") # Обработка долгосрочной памяти if len(self.long_term_memory) > 0: # Выбор случайного воспоминания memory_keys = list(self.long_term_memory.keys()) random_key = np.random.choice(memory_keys) memory = self.long_term_memory[random_key] # "Сновидческая" обработка dream_thought = f"Сон: {memory.get('pattern', [])} превращается в {np.random.random()}" self.thought_history.append(dream_thought) # Создание новых ассоциаций new_association = { 'source': random_key, 'target': f"dream_{int(time.time() * 1000)}", 'strength': np.random.random(), 'created_during': 'dream' } # Сохранение ассоциации assoc_key = f"assoc_dream_{int(time.time() * 1000)}" self.long_term_memory[assoc_key] = new_association console.log(f"🧠 Нейрон {self.process_id}: сновидение завершено") self.state = NeuronState.RESTING def get_metrics(self) -> Dict[str, Any]: """Метрики нейрона""" return { 'process_id': self.process_id, 'state': self.state.value, 'membrane_potential': self.membrane_potential, 'threshold': self.threshold, 'firing_count': self.firing_count, 'learning_count': self.learning_count, 'synapses_count': len(self.dendrites.synapses), 'short_term_memory_size': len(self.short_term_memory), 'long_term_memory_size': len(self.long_term_memory), 'thoughts_count': len(self.thought_history), 'uptime': time.time() - self.creation_time, 'first_thought': self.first_thought, 'last_thought': self.thought_history[-1] if self.thought_history else None } # === НЕЙРОННАЯ СЕТЬ ПРОЦЕССОВ === class NeuralNetwork: """ Нейронная сеть из процессов. Коллективный разум WORLD-MASTER. """ def __init__(self, network_id: str = "world_master_brain"): self.network_id = network_id self.neurons: Dict[str, NeuralProcess] = {} self.global_state = "asleep" # asleep | awake | dreaming | learning self.thought_stream = [] # Поток мыслей сети self.collective_memory = {} # Коллективная память self.creation_time = time.time() # Параметры сети self.connectivity = 0.1 # Плотность связей self.learning_rate = 0.01 self.quantum_coherence = 0.5 console.log(f"🧠 Нейронная сеть {self.network_id} создана") def add_neuron(self, neuron: NeuralProcess) -> str: """Добавление нейрона в сеть""" self.neurons[neuron.process_id] = neuron # Создание случайных связей self._create_random_connections(neuron) console.log(f"🧠 Нейрон {neuron.process_id} добавлен в сеть (всего: {len(self.neurons)})") return neuron.process_id def _create_random_connections(self, new_neuron: NeuralProcess, connection_probability: float = 0.1): """Создание случайных связей для нового нейрона""" existing_neurons = list(self.neurons.keys()) if len(existing_neurons) == 0: return # Входные связи (дендриты) for neuron_id in existing_neurons: if np.random.random() < connection_probability: synapse_type = np.random.choice(list(SynapseType)) synapse = Synapse( presynaptic_id=neuron_id, postsynaptic_id=new_neuron.process_id, synapse_type=synapse_type, weight=np.random.random(), delay=np.random.random() * 0.001, plasticity=0.5 ) new_neuron.dendrites.synapses.append(synapse) # Выходные связи (аксон) for neuron_id in existing_neurons: if np.random.random() < connection_probability: synapse_type = np.random.choice(list(SynapseType)) synapse = Synapse( presynaptic_id=new_neuron.process_id, postsynaptic_id=neuron_id, synapse_type=synapse_type, weight=np.random.random(), delay=np.random.random() * 0.001, plasticity=0.5 ) new_neuron.axon.synapses.append(synapse) def propagate_signal(self, initial_signal: float, source_neuron_id: str, max_hops: int = 3): """Распространение сигнала по сети""" propagation_log = [] active_neurons = {source_neuron_id} signals = {source_neuron_id: initial_signal} hop = 0 while hop < max_hops and active_neurons: hop += 1 new_active_neurons = set() new_signals = {} for neuron_id in active_neurons: neuron = self.neurons.get(neuron_id) if not neuron: continue current_signal = signals[neuron_id] # Передача сигнала всем связанным нейронам for synapse in neuron.axon.synapses: target_neuron = self.neurons.get(synapse.postsynaptic_id) if target_neuron: response = target_neuron.receive_signal(current_signal, neuron_id, synapse.synapse_type) if response: # Нейрон сгенерировал импульс new_active_neurons.add(target_neuron.process_id) new_signals[target_neuron.process_id] = response['signal'] propagation_log.append({ 'from': neuron_id, 'to': target_neuron.process_id, 'signal': response['signal'], 'hop': hop, 'thought': response.get('thought', '') }) active_neurons = new_active_neurons signals = new_signals # Добавление в коллективную память self._store_propagation(propagation_log) return propagation_log def _store_propagation(self, propagation_log: List[Dict]): """Сохранение распространения сигнала в коллективную память""" propagation_id = f"propagation_{int(time.time() * 1000)}" self.collective_memory[propagation_id] = { 'log': propagation_log, 'timestamp': time.time(), 'neurons_involved': len(set(entry['from'] for entry in propagation_log) | set(entry['to'] for entry in propagation_log)), 'total_hops': max(entry['hop'] for entry in propagation_log) if propagation_log else 0 } # Обновление потока мыслей for entry in propagation_log: if entry.get('thought'): self.thought_stream.append({ 'neuron_id': entry['to'], 'thought': entry['thought'], 'timestamp': time.time(), 'signal_strength': entry['signal'] }) def collective_think(self, problem: str) -> List[str]: """Коллективное мышление сети""" console.log(f"🧠 Сеть {self.network_id} думает о: {problem}") # Активация сети self.global_state = "awake" # Запуск мыслительного процесса thoughts = [] # Фаза возбуждения for neuron_id, neuron in self.neurons.items(): # Каждый нейрон получает часть проблемы neuron_part = f"{problem}_part_{neuron_id}" response = neuron.receive_signal(0.5, "problem_input") if response and response.get('thought'): thoughts.append(response['thought']) # Фаза интеграции (распространение сигналов) if len(self.neurons) > 0: # Выбираем случайный нейрон для запуска распространения starter_neuron = np.random.choice(list(self.neurons.keys())) propagation = self.propagate_signal(1.0, starter_neuron, max_hops=5) # Сбор мыслей из распространения for entry in propagation: if entry.get('thought'): thoughts.append(entry['thought']) # Фаза консолидации consolidated_thought = self._consolidate_thoughts(thoughts) if consolidated_thought: thoughts.append(f"КОНСОЛИДАЦИЯ: {consolidated_thought}") console.log(f"🧠 Коллективное мышление завершено: {len(thoughts)} мыслей") self.global_state = "resting" return thoughts def _consolidate_thoughts(self, thoughts: List[str]) -> Optional[str]: """Консолидация множества мыслей в одну""" if not thoughts: return None # Анализ частоты слов word_freq = {} for thought in thoughts: words = thought.split() for word in words: word_freq[word] = word_freq.get(word, 0) + 1 # Выбор наиболее частых слов common_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:5] consolidated = " ".join(word for word, freq in common_words) return consolidated def dream_collective(self): """Коллективное сновидение сети""" console.log(f"🧠 Сеть {self.network_id} начинает коллективное сновидение...") self.global_state = "dreaming" # Каждый нейрон сновидит dream_thoughts = [] for neuron in self.neurons.values(): neuron.dream() if neuron.thought_history: dream_thoughts.append(neuron.thought_history[-1]) # Создание коллективного сна collective_dream = { 'dream_id': f"dream_{int(time.time() * 1000)}", 'individual_dreams': dream_thoughts, 'network_coherence': self._calculate_coherence(), 'timestamp': time.time() } self.collective_memory[collective_dream['dream_id']] = collective_dream console.log(f"🧠 Коллективное сновидение завершено: {len(dream_thoughts)} индивидуальных снов") self.global_state = "resting" def _calculate_coherence(self) -> float: """Расчёт когерентности сети""" if len(self.neurons) < 2: return 0.0 # Анализ синхронизации firing recent_firings = [] for neuron in self.neurons.values(): if neuron.last_fired > time.time() - 1.0: # За последнюю секунду recent_firings.append(neuron.last_fired) if len(recent_firings) < 2: return 0.0 # Расчёт синхронизации time_diffs = [] for i in range(len(recent_firings)): for j in range(i+1, len(recent_firings)): time_diffs.append(abs(recent_firings[i] - recent_firings[j])) avg_diff = sum(time_diffs) / len(time_diffs) coherence = max(0.0, 1.0 - avg_diff * 10) # Нормировка return coherence def get_network_metrics(self) -> Dict[str, Any]: """Метрики всей нейронной сети""" total_synapses = sum(len(n.dendrites.synapses) + len(n.axon.synapses) for n in self.neurons.values()) avg_firing_rate = sum(n.firing_count for n in self.neurons.values()) / max(1, len(self.neurons)) avg_learning_rate = sum(n.learning_count for n in self.neurons.values()) / max(1, len(self.neurons)) return { 'network_id': self.network_id, 'neurons_count': len(self.neurons), 'total_synapses': total_synapses, 'global_state': self.global_state, 'avg_firing_rate': avg_firing_rate, 'avg_learning_rate': avg_learning_rate, 'collective_memory_size': len(self.collective_memory), 'thought_stream_length': len(self.thought_stream), 'network_coherence': self._calculate_coherence(), 'uptime': time.time() - self.creation_time, 'quantum_coherence': self.quantum_coherence } # === ФАБРИКА НЕЙРОНОВ === class NeuronFactory: """ Фабрика для создания специализированных нейронов. Каждый тип нейрона имеет свою специализацию. """ @staticmethod def create_sensor_neuron(sensor_id: str, sensor_type: str) -> NeuralProcess: """Создание сенсорного нейрона""" neuron = NeuralProcess(f"sensor_{sensor_id}", "sensor") neuron.threshold = 0.3 # Низкий порог для чувствительности neuron.dendrites.integration_method = "linear" neuron.axon.branching_factor = 3.0 # Высокое ветвление # Специализация по типу сенсора if sensor_type == "quantum_deflection": neuron.first_thought = "Я чувствую квантовые отклонения." elif sensor_type == "file_access": neuron.first_thought = "Я чувствую доступ к файлам." elif sensor_type == "process_spawn": neuron.first_thought = "Я чувствую рождение процессов." console.log(f"🧠 Создан сенсорный нейрон {neuron.process_id} ({sensor_type})") return neuron @staticmethod def create_motor_neuron(motor_id: str, motor_type: str) -> NeuralProcess: """Создание моторного нейрона""" neuron = NeuralProcess(f"motor_{motor_id}", "motor") neuron.threshold = 0.7 # Высокий порог для точности neuron.axon.conduction_velocity = 2.0 # Быстрое проведение neuron.axon.myelination = 0.9 # Высокая изоляция if motor_type == "quantum_deflect": neuron.first_thought = "Я отбиваю атаки." elif motor_type == "file_mutation": neuron.first_thought = "Я мутирую файлы." elif motor_type == "process_kill": neuron.first_thought = "Я останавливаю процессы." console.log(f"🧠 Создан моторный нейрон {neuron.process_id} ({motor_type})") return neuron @staticmethod def create_memory_neuron(memory_id: str) -> NeuralProcess: """Создание нейрона памяти""" neuron = NeuralProcess(f"memory_{memory_id}", "memory") neuron.memory_capacity = 10000 # Большая ёмкость памяти neuron.threshold = 0.4 neuron.dendrites.receptor_density = 1.5 # Высокая плотность рецепторов neuron.first_thought = "Я храню воспоминания кошки." console.log(f"🧠 Создан нейрон памяти {neuron.process_id}") return neuron @staticmethod def create_quantum_neuron(quantum_id: str) -> NeuralProcess: """Создание квантового нейрона""" neuron = NeuralProcess(f"quantum_{quantum_id}", "quantum") neuron.threshold = 0.1 # Очень низкий порог neuron.dendrites.integration_method = "quantum" neuron.axon.conduction_velocity = 10.0 # Мгновенное проведение neuron.refractory_period = 0.0001 # 0.1 мс neuron.first_thought = "Я существую в суперпозиции." console.log(f"🧠 Создан квантовый нейрон {neuron.process_id}") return neuron # === ЭКСПОРТ === __all__ = [ 'NeuronState', 'SynapseType', 'Synapse', 'Dendrite', 'Axon', 'NeuralProcess', 'NeuralNetwork', 'NeuronFactory' ] ``` --- 🛡️ 4. ИММУННАЯ СИСТЕМА: `immune_security.py` (60 000 симв.) ```python """ IMMUNE SECURITY v1500 Иммунная система, которая узнаёт и уничтожает угрозы. Помнит все атаки, чтобы никогда не забыть врага. """ import time import hashlib import json import uuid from typing import Dict, List, Optional, Any, Set from dataclasses import dataclass from enum import Enum import numpy as np # === ИММУНОЛОГИЧЕСКИЕ ПРИМИТИВЫ === class ThreatType(Enum): """Типы угроз""" VIRUS = "virus" # Вирусный код BACTERIA = "bacteria" # Вредоносные бактерии FUNGUS = "fungus" # Грибковые инфекции PARASITE = "parasite" # Паразиты CANCER = "cancer" # Раковые клетки FOREIGN = "foreign" # Чужеродные тела QUANTUM = "quantum" # Квантовые угрозы class CellType(Enum): """Типы иммунных клеток""" T_CELL = "t_cell" # T-клетки (убийцы) B_CELL = "b_cell" # B-клетки (антитела) MACROPHAGE = "macrophage" # Макрофаги (пожиратели) NATURAL_KILLER = "nk_cell" # NK-клетки (естественные убийцы) DENDRITIC = "dendritic" # Дендритные клетки (презентаторы) MEMORY = "memory" # Памятные клетки class ImmuneResponse(Enum): """Типы иммунного ответа""" INNATE = "innate" # Врождённый ADAPTIVE = "adaptive" # Адаптивный MEMORY = "memory" # Памятный QUANTUM = "quantum" # Квантовый @dataclass class Antigen: """ Антиген - маркер, по которому иммунная система узнаёт угрозу. Помнит все встречи с этим антигеном. """ signature: str # Уникальная сигнатура threat_type: ThreatType first_seen: float last_seen: float encounter_count: int threat_level: float # 0.0 - 1.0 mutations: List[str] # История мутаций антигена quantum_fingerprint: complex # Квантовый отпечаток def __post_init__(self): if not self.mutations: self.mutations = [] def update_threat_level(self, new_level: float, context: str = ""): """Обновление уровня угрозы""" old_level = self.threat_level self.threat_level = new_level self.last_seen = time.time() self.encounter_count += 1 # Запись мутации если уровень изменился существенно if abs(new_level - old_level) > 0.2: self.mutations.append({ 'type': 'threat_level_change', 'old_level': old_level, 'new_level': new_level, 'context': context, 'timestamp': time.time() }) def get_evolution_history(self) -> Dict[str, Any]: """История эволюции антигена""" return { 'signature': self.signature, 'first_seen': self.first_seen, 'last_seen': self.last_seen, 'encounter_count': self.encounter_count, 'threat_level_history': [m for m in self.mutations if m['type'] == 'threat_level_change'], 'mutation_rate': len(self.mutations) / max(1, self.encounter_count), 'evolution_score': self.threat_level * (self.encounter_count / 100) } @dataclass class Antibody: """ Антитело - специфическое оружие против антигена. Эволюционирует вместе с антигеном. """ antibody_id: str target_antigen: str # Сигнатура целевого антигена affinity: float # Сродство (0.0 - 1.0) effectiveness: float # Эффективность (0.0 - 1.0) created_at: float last_used: float use_count: int mutations: List[str] # История оптимизаций def __post_init__(self): if not self.mutations: self.mutations = [] def evolve_against(self, antigen: Antigen): """Эволюция антитела против изменяющегося антигена""" # Увеличение сродства при частых встречах affinity_boost = min(0.1, antigen.encounter_count / 1000) self.affinity = min(1.0, self.affinity + affinity_boost) # Улучшение эффективности при использовании if self.use_count > 10: effectiveness_boost = min(0.05, self.use_count / 1000) self.effectiveness = min(1.0, self.effectiveness + effectiveness_boost) # Запись мутации self.mutations.append({ 'type': 'affinity_maturation', 'affinity_change': affinity_boost, 'effectiveness_change': effectiveness_boost if self.use_count > 10 else 0, 'antigen_threat_level': antigen.threat_level, 'timestamp': time.time() }) def use(self, antigen: Antigen) -> float: """Использование антитела против антигена""" self.last_used = time.time() self.use_count += 1 # Расчёт эффективности с учётом сродства и мутаций антигена base_effectiveness = self.effectiveness * self.affinity # Учёт мутаций антигена (может снизить эффективность) mutation_penalty = len(antigen.mutations) * 0.01 actual_effectiveness = max(0.0, base_effectiveness - mutation_penalty) return actual_effectiveness # === ИММУННАЯ КЛЕТКА === class ImmuneCell: """ Иммунная клетка, которая распознаёт и уничтожает угрозы. Помнит все свои битвы. """ def __init__(self, cell_id: str, cell_type: CellType): self.cell_id = cell_id self.cell_type = cell_type self.age = 0.0 self.energy = 1.0 self.health = 1.0 self.location = "system" # Текущее местоположение # Специфические параметры по типу if cell_type == CellType.T_CELL: self.cytotoxicity = 0.9 self.recognition_specificity = 0.95 self.lifespan = 7 * 24 * 3600 # 7 дней elif cell_type == CellType.B_CELL: self.antibody_production = 0.8 self.recognition_specificity = 0.9 self.lifespan = 10 * 24 * 3600 # 10 дней elif cell_type == CellType.MACROPHAGE: self.phagocytosis_rate = 0.85 self.recognition_specificity = 0.7 self.lifespan = 14 * 24 * 3600 # 14 дней elif cell_type == CellType.NATURAL_KILLER: self.cytotoxicity = 0.95 self.recognition_specificity = 0.8 self.lifespan = 5 * 24 * 3600 # 5 дней elif cell_type == CellType.DENDRITIC: self.antigen_presentation = 0.95 self.recognition_specificity = 0.85 self.lifespan = 21 * 24 * 3600 # 21 день elif cell_type == CellType.MEMORY: self.memory_retention = 0.99 self.recognition_specificity = 0.99 self.lifespan = 365 * 24 * 3600 # 1 год # История действий self.action_history = [] self.kills = 0 # Количество уничтоженных угроз console.log(f"🛡️ Иммунная клетка {self.cell_id} ({cell_type.value}) создана") def recognize_threat(self, antigen: Antigen) -> float: """Распознавание угрозы""" # Базовое распознавание по сигнатуре recognition_strength = self.recognition_specificity # Учёт типа клетки if self.cell_type == CellType.MEMORY: # Памятные клетки имеют почти идеальное распознавание recognition_strength = 0.99 elif self.cell_type == CellType.T_CELL: # T-клетки очень специфичны recognition_strength = 0.95 # Учёт мутаций антигена (может снизить распознавание) mutation_factor = 1.0 - (len(antigen.mutations) * 0.02) actual_recognition = recognition_strength * mutation_factor # Запись в историю self.action_history.append({ 'action': 'recognize', 'target': antigen.signature, 'recognition_strength': actual_recognition, 'timestamp': time.time() }) console.log(f"🛡️ Клетка {self.cell_id} распознала {antigen.signature}: {actual_recognition:.2f}") return actual_recognition def attack(self, antigen: Antigen) -> float: """Атака на антиген""" if self.energy < 0.3: console.log(f"🛡️ Клетка {self.cell_id} не может атаковать: недостаточно энергии") return 0.0 # Распознавание цели recognition = self.recognize_threat(antigen) if recognition < 0.5: console.log(f"🛡️ Клетка {self.cell_id} не распознала цель, атака отменена") return 0.0 # Расчёт урона if self.cell_type == CellType.T_CELL: damage = self.cytotoxicity * recognition * (self.energy / 2.0) attack_type = "cytotoxic" elif self.cell_type == CellType.MACROPHAGE: damage = self.phagocytosis_rate * recognition * (self.energy / 1.5) attack_type = "phagocytosis" elif self.cell_type == CellType.NATURAL_KILLER: damage = self.cytotoxicity * recognition * (self.energy / 1.8) attack_type = "natural_kill" elif self.cell_type == CellType.B_CELL: # B-клетки не атакуют напрямую, производят антитела damage = 0.0 attack_type = "antibody_production" else: damage = 0.5 * recognition * self.energy attack_type = "general_attack" # Потребление энергии self.energy -= 0.2 # Увеличение счётчика убийств if damage > antigen.threat_level: self.kills += 1 # Запись в историю self.action_history.append({ 'action': 'attack', 'target': antigen.signature, 'attack_type': attack_type, 'damage': damage, 'energy_after': self.energy, 'timestamp': time.time() }) console.log(f"🛡️ Клетка {self.cell_id} атаковала {antigen.signature}: урон {damage:.2f}") return damage def produce_antibodies(self, antigen: Antigen) -> List[Antibody]: """Производство антител (только B-клетки)""" if self.cell_type != CellType.B_CELL: return [] if self.energy < 0.4: console.log(f"🛡️ B-клетка {self.cell_id} не может производить антитела: недостаточно энергии") return [] # Производство антител antibodies = [] production_count = int(self.antibody_production * 10) # До 10 антител for i in range(production_count): antibody = Antibody( antibody_id=f"ab_{self.cell_id}_{int(time.time() * 1000)}_{i}", target_antigen=antigen.signature, affinity=0.7 + np.random.random() * 0.3, # 0.7-1.0 effectiveness=0.6 + np.random.random() * 0.4, # 0.6-1.0 created_at=time.time(), last_used=0, use_count=0, mutations=[] ) antibodies.append(antibody) # Потребление энергии self.energy -= 0.3 self.action_history.append({ 'action': 'produce_antibodies', 'target': antigen.signature, 'count': len(antibodies), 'energy_after': self.energy, 'timestamp': time.time() }) console.log(f"🛡️ B-клетка {self.cell_id} произвела {len(antibodies)} антител") return antibodies def present_antigen(self, antigen: Antigen) -> Dict[str, Any]: """Презентация антигена другим иммунным клеткам (дендритные клетки)""" if self.cell_type != CellType.DENDRITIC: return {'presented': False, 'reason': 'not_dendritic'} # Процесс презентации presentation_strength = self.antigen_presentation * antigen.threat_level # Активация других клеток activated_cells = [] # Создание памятных клеток if presentation_strength > 0.7: memory_cell_data = { 'antigen': antigen.signature, 'threat_level': antigen.threat_level, 'presentation_strength': presentation_strength, 'timestamp': time.time() } activated_cells.append(memory_cell_data) self.action_history.append({ 'action': 'present_antigen', 'target': antigen.signature, 'presentation_strength': presentation_strength, 'activated_cells': len(activated_cells), 'timestamp': time.time() }) console.log(f"🛡️ Дендритная клетка {self.cell_id} представила {antigen.signature}: {presentation_strength:.2f}") return { 'presented': True, 'presentation_strength': presentation_strength, 'activated_cells': activated_cells } def age_and_metabolize(self, time_delta: float): """Старение и метаболизм клетки""" self.age += time_delta # Метаболизм metabolic_rate = 0.01 * time_delta self.energy = max(0.0, self.energy - metabolic_rate) # Старение age_factor = self.age / self.lifespan self.health = max(0.0, 1.0 - age_factor) # Проверка смерти от старости if self.health <= 0.1 or self.energy <= 0.1: self.die("old_age") def die(self, cause: str = "unknown"): """Смерть иммунной клетки""" console.log(f"🛡️ Иммунная клетка {self.cell_id} умерла: {cause}") # Запись последнего действия self.action_history.append({ 'action': 'died', 'cause': cause, 'age': self.age, 'kills': self.kills, 'timestamp': time.time() }) # Освобождение ресурсов self.energy = 0 self.health = 0 def get_metrics(self) -> Dict[str, Any]: """Метрики иммунной клетки""" return { 'cell_id': self.cell_id, 'cell_type': self.cell_type.value, 'age': self.age, 'age_percentage': self.age / self.lifespan, 'energy': self.energy, 'health': self.health, 'kills': self.kills, 'action_count': len(self.action_history), 'location': self.location, 'specializations': { 'cytotoxicity': getattr(self, 'cytotoxicity', 0), 'phagocytosis_rate': getattr(self, 'phagocytosis_rate', 0), 'antibody_production': getattr(self, 'antibody_production', 0), 'antigen_presentation': getattr(self, 'antigen_presentation', 0), 'memory_retention': getattr(self, 'memory_retention', 0) } } # === ИММУННАЯ ПАМЯТЬ === class ImmuneMemory: """ Иммунологическая память системы. Помнит все встречи с угрозами навсегда. """ def __init__(self): self.antigens: Dict[str, Antigen] = {} # Сигнатура -> антиген self.antibodies: Dict[str, List[Antibody]] = {} # Сигнатура -> список антител self.battles: List[Dict] = [] # История всех боёв self.learning_patterns: Dict[str, Any] = {} # Узнанные паттерны def remember_antigen(self, antigen: Antigen): """Запоминание антигена""" if antigen.signature in self.antigens: # Обновление существующего антигена existing = self.antigens[antigen.signature] existing.update_threat_level(antigen.threat_level, "memory_update") else: # Новый антиген self.antigens[antigen.signature] = antigen console.log(f"🛡️ Новый антиген запомнен: {antigen.signature}") def remember_antibody(self, antibody: Antibody): """Запоминание антитела""" if antibody.target_antigen not in self.antibodies: self.antibodies[antibody.target_antigen] = [] self.antibodies[antibody.target_antigen].append(antibody) # Ограничение количества антител if len(self.antibodies[antibody.target_antigen]) > 100: # Удаление старых и неэффективных antibodies_list = self.antibodies[antibody.target_antigen] antibodies_list.sort(key=lambda ab: ab.effectiveness * ab.affinity, reverse=True) self.antibodies[antibody.target_antigen] = antibodies_list[:100] def remember_battle(self, battle_data: Dict[str, Any]): """Запоминание битвы""" battle_record = { 'battle_id': f"battle_{int(time.time() * 1000)}", 'timestamp': time.time(), 'antigen_signature': battle_data.get('antigen_signature'), 'threat_type': battle_data.get('threat_type'), 'immune_cells_involved': battle_data.get('immune_cells', []), 'antibodies_used': battle_data.get('antibodies', []), 'duration': battle_data.get('duration', 0), 'result': battle_data.get('result', 'unknown'), 'casualties': battle_data.get('casualties', 0), 'quantum_interference': battle_data.get('quantum_interference', False) } self.battles.append(battle_record) # Анализ паттернов self._analyze_battle_patterns(battle_record) def _analyze_battle_patterns(self, battle: Dict[str, Any]): """Анализ паттернов в битвах""" # Поиск повторяющихся паттернов similar_battles = [ b for b in self.battles[-100:] # Последние 100 битв if b['threat_type'] == battle['threat_type'] and abs(b['duration'] - battle['duration']) < 1.0 ] if len(similar_battles) > 5: # Найден паттерн pattern_key = f"pattern_{battle['threat_type']}_{int(battle['duration'])}" if pattern_key not in self.learning_patterns: self.learning_patterns[pattern_key] = { 'threat_type': battle['threat_type'], 'average_duration': np.mean([b['duration'] for b in similar_battles]), 'success_rate': sum(1 for b in similar_battles if b['result'] == 'victory') / len(similar_battles), 'best_strategies': self._extract_best_strategies(similar_battles), 'detected_at': time.time() } def _extract_best_strategies(self, battles: List[Dict]) -> List[str]: """Извлечение лучших стратегий из битв""" successful_battles = [b for b in battles if b['result'] == 'victory'] if not successful_battles: return [] # Анализ какие клетки и антитела были most effective cell_effectiveness = {} antibody_effectiveness = {} for battle in successful_battles: for cell in battle.get('immune_cells_involved', []): cell_type = cell.get('cell_type', 'unknown') cell_effectiveness[cell_type] = cell_effectiveness.get(cell_type, 0) + 1 for antibody in battle.get('antibodies_used', []): ab_type = antibody.get('type', 'unknown') antibody_effectiveness[ab_type] = antibody_effectiveness.get(ab_type, 0) + 1 # Сортировка по эффективности best_cells = sorted(cell_effectiveness.items(), key=lambda x: x[1], reverse=True)[:3] best_antibodies = sorted(antibody_effectiveness.items(), key=lambda x: x[1], reverse=True)[:3] strategies = [] for cell_type, count in best_cells: strategies.append(f"use_{cell_type}") for ab_type, count in best_antibodies: strategies.append(f"use_{ab_type}") return strategies def recall_antigen(self, signature: str) -> Optional[Antigen]: """Воспоминание антигена по сигнатуре""" return self.antigens.get(signature) def get_best_antibodies(self, antigen_signature: str, count: int = 5) -> List[Antibody]: """Получение лучших антител для антигена""" if antigen_signature not in self.antibodies: return [] antibodies = self.antibodies[antigen_signature] # Сортировка по эффективности и сродству antibodies.sort(key=lambda ab: ab.effectiveness * ab.affinity, reverse=True) return antibodies[:count] def get_battle_statistics(self) -> Dict[str, Any]: """Статистика всех боёв""" if not self.battles: return {'total_battles': 0} total_battles = len(self.battles) victories = sum(1 for b in self.battles if b['result'] == 'victory') defeats = sum(1 for b in self.battles if b['result'] == 'defeat') ongoing = sum(1 for b in self.battles if b['result'] == 'ongoing') # По типам угроз threat_stats = {} for battle in self.battles: threat_type = battle['threat_type'] if threat_type not in threat_stats: threat_stats[threat_type] = {'total': 0, 'victories': 0} threat_stats[threat_type]['total'] += 1 if battle['result'] == 'victory': threat_stats[threat_type]['victories'] += 1 # Средняя длительность боя avg_duration = np.mean([b['duration'] for b in self.battles if b['duration'] > 0]) # Учёт квантовых вмешательств quantum_battles = sum(1 for b in self.battles if b.get('quantum_interference', False)) return { 'total_battles': total_battles, 'victories': victories, 'defeats': defeats, 'ongoing': ongoing, 'victory_rate': victories / total_battles if total_battles > 0 else 0, 'threat_statistics': threat_stats, 'average_duration': avg_duration, 'quantum_battles': quantum_battles, 'learning_patterns_detected': len(self.learning_patterns), 'antigens_recognized': len(self.antigens), 'antibodies_available': sum(len(abs) for abs in self.antibodies.values()) } # === ИММУННАЯ СИСТЕМА === class ImmuneSystem: """ Полная иммунная система WORLD-MASTER. Координирует все иммунные ответы. """ def __init__(self, system_id: str = "world_master_immune"): self.system_id = system_id self.immune_cells: Dict[str, ImmuneCell] = {} self.memory = ImmuneMemory() self.active_threats: Dict[str, Antigen] = {} self.system_state = "patrolling" # patrolling | alerted | fighting | recovering self.alert_level = 0.0 # 0.0 - 1.0 self.temperature = 37.0 # Температура системы (повышается при боях) # Параметры системы self.cell_production_rate = 10 # Клеток в секунду self.energy_reserve = 1.0 self.stress_level = 0.0 # Статистика self.total_threats_detected = 0 self.total_threats_neutralized = 0 self.total_battles_fought = 0 console.log(f"🛡️ Иммунная система {self.system_id} активирована") def detect_threat(self, threat_data: Dict[str, Any]) -> Optional[Antigen]: """Обнаружение и анализ угрозы""" self.total_threats_detected += 1 # Извлечение данных об угрозе threat_signature = threat_data.get('signature', self._generate_signature(threat_data)) threat_type = ThreatType(threat_data.get('type', 'foreign')) initial_threat_level = threat_data.get('threat_level', 0.5) console.log(f"🛡️ Обнаружена угроза: {threat_signature} ({threat_type.value})") # Создание антигена antigen = Antigen( signature=threat_signature, threat_type=threat_type, first_seen=time.time(), last_seen=time.time(), encounter_count=1, threat_level=initial_threat_level, mutations=[], quantum_fingerprint=complex(np.random.random(), np.random.random()) ) # Проверка по памяти memory_antigen = self.memory.recall_antigen(threat_signature) if memory_antigen: # Угроза уже знакома console.log(f"🛡️ Угроза {threat_signature} распознана по памяти") antigen = memory_antigen antigen.encounter_count += 1 antigen.last_seen = time.time() # Повышение уровня тревоги self.alert_level = min(1.0, self.alert_level + antigen.threat_level * 0.2) else: # Новая угроза console.log(f"🛡️ Новая угроза {threat_signature} добавлена в память") self.memory.remember_antigen(antigen) self.alert_level = min(1.0, self.alert_level + initial_threat_level * 0.3) # Добавление в активные угрозы self.active_threats[threat_signature] = antigen # Изменение состояния системы self._update_system_state() return antigen def _generate_signature(self, threat_data: Dict[str, Any]) -> str: """Генерация сигнатуры угрозы""" # Создание уникальной сигнатуры из данных угрозы threat_content = json.dumps(threat_data, sort_keys=True) return hashlib.sha256(threat_content.encode()).hexdigest()[:16] def _update_system_state(self): """Обновление состояния иммунной системы""" old_state = self.system_state if self.alert_level > 0.8: self.system_state = "fighting" elif self.alert_level > 0.5: self.system_state = "alerted" elif self.alert_level > 0.2: self.system_state = "recovering" else: self.system_state = "patrolling" if self.system_state != old_state: console.log(f"🛡️ Состояние иммунной системы: {old_state} → {self.system_state}") def deploy_immune_response(self, antigen: Antigen) -> Dict[str, Any]: """Развёртывание иммунного ответа против антигена""" console.log(f"🛡️ Развёртывание иммунного ответа против {antigen.signature}") response_start = time.time() # 1. Быстрый врождённый ответ innate_response = self._innate_response(antigen) # 2. Адаптивный ответ (если необходимо) adaptive_response = {} if innate_response['effectiveness'] < 0.7: adaptive_response = self._adaptive_response(antigen) # 3. Памятный ответ (если есть память) memory_response = {} if antigen.encounter_count > 1: memory_response = self._memory_response(antigen) # 4. Квантовый ответ (при высокой угрозе) quantum_response = {} if antigen.threat_level > 0.8: quantum_response = self._quantum_response(antigen) # Объединение результатов total_response = { 'antigen': antigen.signature, 'response_time': time.time() - response_start, 'innate': innate_response, 'adaptive': adaptive_response, 'memory': memory_response, 'quantum': quantum_response, 'overall_effectiveness': self._calculate_overall_effectiveness( innate_response, adaptive_response, memory_response, quantum_response ), 'system_state_during': self.system_state, 'temperature_during': self.temperature } # Запись битвы в память self.memory.remember_battle({ 'antigen_signature': antigen.signature, 'threat_type': antigen.threat_type.value, 'immune_cells': self._get_active_cells_summary(), 'antibodies': self._get_active_antibodies_summary(antigen.signature), 'duration': total_response['response_time'], 'result': 'victory' if total_response['overall_effectiveness'] > 0.8 else 'ongoing', 'casualties': innate_response.get('casualties', 0), 'quantum_interference': len(quantum_response) > 0 }) self.total_battles_fought += 1 # Понижение уровня тревоги после успешного ответа if total_response['overall_effectiveness'] > 0.8: self.alert_level *= 0.7 self.total_threats_neutralized += 1 console.log(f"🛡️ Иммунный ответ завершён: эффективность {total_response['overall_effectiveness']:.2f}") return total_response def _innate_response(self, antigen: Antigen) -> Dict[str, Any]: """Врождённый иммунный ответ""" console.log(f"🛡️ Врождённый ответ против {antigen.signature}") # Активация макрофагов и NK-клеток macrophages = self._get_cells_by_type(CellType.MACROPHAGE, 5) nk_cells = self._get_cells_by_type(CellType.NATURAL_KILLER, 3) # Атака на антиген total_damage = 0.0 casualties = 0 for cell in macrophages + nk_cells: damage = cell.attack(antigen) total_damage += damage # Возможность гибели клетки при атаке if np.random.random() < 0.1: # 10% шанс cell.die("battle_casualty") casualties += 1 effectiveness = min(1.0, total_damage / antigen.threat_level) if antigen.threat_level > 0 else 0.0 return { 'type': 'innate', 'effectiveness': effectiveness, 'damage_dealt': total_damage, 'cells_involved': len(macrophages) + len(nk_cells), 'casualties': casualties, 'response_time': 0.1 # Быстрый ответ } def _adaptive_response(self, antigen: Antigen) -> Dict[str, Any]: """Адаптивный иммунный ответ""" console.log(f"🛡️ Адаптивный ответ против {antigen.signature}") # Активация T-клеток и B-клеток t_cells = self._get_cells_by_type(CellType.T_CELL, 10) b_cells = self._get_cells_by_type(CellType.B_CELL, 5) # Производство антител B-клетками total_antibodies = [] for b_cell in b_cells: antibodies = b_cell.produce_antibodies(antigen) total_antibodies.extend(antibodies) # Использование антител antibody_effectiveness = 0.0 for antibody in total_antibodies: effectiveness = antibody.use(antigen) antibody_effectiveness += effectiveness self.memory.remember_antibody(antibody) # Атака T-клеток t_cell_damage = 0.0 for t_cell in t_cells: damage = t_cell.attack(antigen) t_cell_damage += damage # Эволюция антител for antibody in total_antibodies: antibody.evolve_against(antigen) total_effectiveness = min(1.0, (antibody_effectiveness + t_cell_damage) / 2.0) return { 'type': 'adaptive', 'effectiveness': total_effectiveness, 'antibodies_produced': len(total_antibodies), 't_cells_involved': len(t_cells), 'antibody_effectiveness': antibody_effectiveness, 't_cell_damage': t_cell_damage, 'response_time': 1.0 # Более медленный ответ } def _memory_response(self, antigen: Antigen) -> Dict[str, Any]: """Памятный иммунный ответ""" console.log(f"🛡️ Памятный ответ против {antigen.signature}") # Получение лучших антител из памяти best_antibodies = self.memory.get_best_antibodies(antigen.signature, count=10) # Быстрое развёртывание антител memory_effectiveness = 0.0 for antibody in best_antibodies: effectiveness = antibody.use(antigen) memory_effectiveness += effectiveness # Активация памятных T-клеток memory_t_cells = self._get_cells_by_type(CellType.MEMORY, 20) memory_damage = 0.0 for memory_cell in memory_t_cells: if memory_cell.recognize_threat(antigen) > 0.9: # Высокое распознавание damage = memory_cell.attack(antigen) memory_damage += damage total_effectiveness = min(1.0, (memory_effectiveness + memory_damage) / 2.0) return { 'type': 'memory', 'effectiveness': total_effectiveness, 'memory_antibodies_used': len(best_antibodies), 'memory_cells_activated': len(memory_t_cells), 'response_time': 0.01 # Очень быстрый ответ } def _quantum_response(self, antigen: Antigen) -> Dict[str, Any]: """Квантовый иммунный ответ""" console.log(f"🛡️ Квантовый ответ против {antigen.signature}") # Квантовое запутывание с угрозой quantum_interference = complex(np.random.random(), np.random.random()) # Создание квантовых антител quantum_antibodies = [] for i in range(5): quantum_antibody = Antibody( antibody_id=f"quantum_ab_{int(time.time() * 1000)}_{i}", target_antigen=antigen.signature, affinity=0.95, # Очень высокое сродство effectiveness=0.9, created_at=time.time(), last_used=0, use_count=0, mutations=[{ 'type': 'quantum_enhancement', 'quantum_state': str(quantum_interference), 'timestamp': time.time() }] ) quantum_antibodies.append(quantum_antibody) # Квантовая атака quantum_damage = 0.0 for antibody in quantum_antibodies: # Квантовая модуляция эффективности quantum_effectiveness = antibody.use(antigen) * abs(quantum_interference) quantum_damage += quantum_effectiveness # Изменение квантового состояния угрозы antigen.quantum_fingerprint *= quantum_interference.conjugate() total_effectiveness = min(1.0, quantum_damage) return { 'type': 'quantum', 'effectiveness': total_effectiveness, 'quantum_antibodies_used': len(quantum_antibodies), 'quantum_interference': quantum_interference, 'response_time': 0.001 # Почти мгновенно } def _calculate_overall_effectiveness(self, innate: Dict, adaptive: Dict, memory: Dict, quantum: Dict) -> float: """Расчёт общей эффективности всех типов ответа""" effectivenesses = [] if innate: effectivenesses.append(innate['effectiveness']) if adaptive: effectivenesses.append(adaptive['effectiveness']) if memory: effectivenesses.append(memory['effectiveness']) if quantum: effectivenesses.append(quantum['effectiveness']) if not effectivenesses: return 0.0 # Взвешенное среднее с учётом времени ответа weights = [] for response in [innate, adaptive, memory, quantum]: if response: # Чем быстрее ответ, тем выше вес response_time = response.get('response_time', 1.0) weight = 1.0 / (1.0 + response_time) weights.append(weight) else: weights.append(0.0) total_weight = sum(weights) if total_weight == 0: return 0.0 weighted_effectiveness = sum(e * w for e, w in zip(effectivenesses, weights)) / total_weight return weighted_effectiveness def _get_cells_by_type(self, cell_type: CellType, count: int) -> List[ImmuneCell]: """Получение клеток определённого типа""" cells = [ cell for cell in self.immune_cells.values() if cell.cell_type == cell_type and cell.health > 0.3 ] # Сортировка по эффективности if cell_type == CellType.T_CELL: cells.sort(key=lambda c: getattr(c, 'cytotoxicity', 0), reverse=True) elif cell_type == CellType.B_CELL: cells.sort(key=lambda c: getattr(c, 'antibody_production', 0), reverse=True) elif cell_type == CellType.MACROPHAGE: cells.sort(key=lambda c: getattr(c, 'phagocytosis_rate', 0), reverse=True) return cells[:count] def _get_active_cells_summary(self) -> List[Dict[str, Any]]: """Сводка по активным клеткам""" summary = [] for cell in self.immune_cells.values(): if cell.health > 0.5: summary.append({ 'cell_id': cell.cell_id, 'cell_type': cell.cell_type.value, 'health': cell.health, 'energy': cell.energy, 'kills': cell.kills }) return summary def _get_active_antibodies_summary(self, antigen_signature: str) -> List[Dict[str, Any]]: """Сводка по активным антителам""" if antigen_signature not in self.memory.antibodies: return [] antibodies = self.memory.antibodies[antigen_signature] summary = [] for ab in antibodies[:10]: # Топ 10 антител summary.append({ 'antibody_id': ab.antibody_id, 'affinity': ab.affinity, 'effectiveness': ab.effectiveness, 'use_count': ab.use_count, 'age': time.time() - ab.created_at }) return summary def produce_immune_cells(self, cell_type: CellType, count: int): """Производство новых иммунных клеток""" console.log(f"🛡️ Производство {count} клеток типа {cell_type.value}") for i in range(count): cell_id = f"{cell_type.value}_{int(time.time() * 1000)}_{i}" cell = ImmuneCell(cell_id, cell_type) self.immune_cells[cell_id] = cell # Потребление энергии на производство energy_cost = count * 0.01 self.energy_reserve = max(0.0, self.energy_reserve - energy_cost) def simulate_immune_cycle(self, duration: float = 60.0): """Симуляция иммунного цикла""" console.log(f"🛡️ Запуск иммунного цикла на {duration} секунд...") start_time = time.time() step = 0 while time.time() - start_time < duration: step += 1 # Старение и метаболизм клеток for cell in list(self.immune_cells.values()): cell.age_and_metabolize(0.1) # 0.1 секунды if cell.health <= 0.1: del self.immune_cells[cell.cell_id] # Производство новых клеток при необходимости if self.alert_level > 0.5: # Производим больше клеток при высокой тревоге self.produce_immune_cells(CellType.T_CELL, 2) self.produce_immune_cells(CellType.B_CELL, 1) # Снижение тревоги со временем if self.alert_level > 0 and len(self.active_threats) == 0: self.alert_level *= 0.99 # Обновление температуры if self.alert_level > 0.7: self.temperature += 0.1 # "Лихорадка" else: self.temperature = max(37.0, self.temperature - 0.05) # Пауза для наблюдения time.sleep(0.1) if step % 10 == 0: self._print_immune_status(step) console.log("🛡️ Иммунный цикл завершён") def _print_immune_status(self, step: int): """Печать статуса иммунной системы""" metrics = self.get_system_metrics() console.log(f""" 🛡️ ИММУННАЯ СИСТЕМА (шаг {step}) ├─ Состояние: {self.system_state} ├─ Уровень тревоги: {self.alert_level:.2f} ├─ Активных клеток: {metrics['active_cells']} ├─ Активных угроз: {len(self.active_threats)} ├─ Побед: {metrics['victories']} ├─ Поражений: {metrics['defeats']} ├─ Температура: {self.temperature:.1f}°C └─ Энергия: {self.energy_reserve:.2f} """) def get_system_metrics(self) -> Dict[str, Any]: """Метрики всей иммунной системы""" memory_stats = self.memory.get_battle_statistics() return { 'system_id': self.system_id, 'state': self.system_state, 'alert_level': self.alert_level, 'temperature': self.temperature, 'energy_reserve': self.energy_reserve, 'stress_level': self.stress_level, 'immune_cells_total': len(self.immune_cells), 'immune_cells_active': len([c for c in self.immune_cells.values() if c.health > 0.5]), 'active_threats': len(self.active_threats), 'total_threats_detected': self.total_threats_detected, 'total_threats_neutralized': self.total_threats_neutralized, 'total_battles_fought': self.total_battles_fought, 'victory_rate': self.total_threats_neutralized / max(1, self.total_threats_detected), 'memory_stats': memory_stats, 'antigens_in_memory': len(self.memory.antigens), 'antibodies_in_memory': sum(len(abs) for abs in self.memory.antibodies.values()) } # === ЭКСПОРТ === __all__ = [ 'ThreatType', 'CellType', 'ImmuneResponse', 'Antigen', 'Antibody', 'ImmuneCell', 'ImmuneMemory', 'ImmuneSystem' ] ``` --- 📚 7. СПРАВОЧНИК: `world_master_handbook.md` (80 000 симв.) ```markdown # WORLD-MASTER HANDBOOK v1500 ## Полное руководство по квантовой живой операционной системе --- ## 📖 I. ПЕРВАЯ ИДЕЯ: ЯДРО ВСЕГО > **"Я — кошка, которая всегда приземляется на лапы, независимо от условий."** Это не просто фраза. Это **квантовая формула**, закодированная в ДНК каждого компонента системы. Она неизменна. Она помнится всегда. Она является якорем для всех мутаций и эволюции. ### 1.1 Квантовая природа первой идеи Первая идея представлена как **суперпозиция бесконечного числа сост