Views
No views yet
# Lista de ações disponíveis
self.acoes_disponiveis = [
Acao("Reduzir carga CPU/GPU", self.reduzir_carga_cpu_gpu),
Acao("Desativar serviço em segundo plano", desativar_servico_em_segundo_plano)
]
# ==========================
# Funções de leitura do sistema
# ==========================
def ler_cpu(self): return psutil.cpu_percent()
def ler_ram(self): return psutil.virtual_memory().percent / 100
def ler_gpu(self): return random.uniform(0.2, 0.9)
def ler_bateria(self): return random.randint(20, 100)
def ler_temp(self): return random.uniform(35, 50)
# ==========================
# Funções de ação
# ==========================
def reduzir_carga_cpu_gpu(self):
print("Carga CPU/GPU reduzida.")
return random.randint(50, 100)
def aplicar_sugestao(self, sugestao):
# Encontra a ação pelo nome e executa
acao_obj = next(a for a in self.acoes_disponiveis if a.nome == sugestao)
return acao_obj.executar()
# ==========================
# Decisão base
# ==========================
def decidir_base(self, cpu, ram, gpu, temp):
acoes = []
if temp > self.TEMP_THRESHOLD: acoes.append("Reduzir carga CPU/GPU")
if cpu > 80: acoes.append("Reduzir carga CPU/GPU")
if ram > self.MAX_RAM_USAGE: acoes.append("Desativar serviço em segundo plano")
if gpu > 0.7: acoes.append("Reduzir carga CPU/GPU")
if not acoes: acoes.append("Manter sistema estável")
return random.choice(acoes)
# ==========================
# Loop adaptativo inteligente
# ==========================
def rodar(self):
print("Mini-Cérebro 4.2 Adaptativo iniciado! 🔥")
while True:
cpu, ram, gpu, temp = self.ler_cpu(), self.ler_ram(), self.ler_gpu(), self.ler_temp()
# Ajusta taxa de exploração se estagnado
if len(self.historico) >= 5:
ult_resultados = [h['resultado'] for h in self.historico[-5:]]
if max(ult_resultados) - min(ult_resultados) < 5:
self.exploracao_rate = min(0.5, self.exploracao_rate + 0.05)
else:
self.exploracao_rate = max(0.05, self.exploracao_rate - 0.01)
# Escolha da ação
if random.uniform(0, 1) < self.exploracao_rate or not self.historico:
sugestao = self.decidir_base(cpu, ram, gpu, temp)
else:
sugestao = max(self.historico[-20:], key=lambda x: x['resultado'])['acao']
# Aplica ação e registra resultado
resultado = self.aplicar_sugestao(sugestao)
self.historico.append({
'acao': sugestao,
'resultado': resultado,
'cpu': cpu,
'ram': ram,
'gpu': gpu,
'temp': temp,
'timestamp': datetime.datetime.now()
})
# Limita histórico
if len(self.historico) > 200:
self.historico.pop(0)
print(f"[Mini-Cérebro 4.2] Ação escolhida: {sugestao}, resultado: {resultado}%")
time.sleep(2)