Алгоритм сознания : реализиция в виде псевдокода
Набросал структуру алгоритма сознания в виде псевдокода, который легко можно переписать хоть на Python хоть на C++. В нем пока не реализованы функция обучения агента (бота) в среде, и алгоритм самой среды, а также эксперименты которые может делать сознание и оценка ценности целей. Имеет смысл написать точные алгритмы для простейших игр - например тетрис или змейки , или даже попроще игры с небольшими полями для игр. Комментарии по привычке написал на английском
WorldModel world_model;
predicted_input = null;
Array input_history;
Environment env;
learning_world_model(predicted_input, input) {
input_history.append(input)
if ( predicted_input == null )
return;
learning(world_model, input_history, predicted_input, input);
}
find_best_action( world_model ) {
// Fill - for example brutforce search from math control theory
return {action, prediction}
}
find_action(input, action, is_best_action) {
// Explotation action
if (is_best_action) {
return find_best_action(world_model);
// Exploration action
} else {
action = rand()
return {action, predict( world_model , action)};
}
}
processing(input) {
learning_world_model(predicted_input, input);
action, predicted_input = find_action(input, action, rand() % 2);
return action;
}
class Environment {
public:
input() {
// Return piece of envMemory visible for agent
return view(envMemory);
}
output( action ) {
nextEnvMemoryState(action)
}
private:
nextEnvMemoryState(action){
// Some dynamic system - for example cellular automation . Every invoke that function - next timestep for dynamic with action
envMemory = newEnvMemory;
}
Memory envMemory = {0, 0 ,0 ,0 ...};
}
main() {
while (true) {
input = Environment.input()
action = processing(input)
Environment.output(action)
}
}










