61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace neuralnetwork\core;
|
|
|
|
use neuralnetwork\core\NeuralNetworkCore;
|
|
use filemanager\core\FileManager;
|
|
|
|
/************************************************
|
|
**** Neural Network's Facade ****
|
|
************************************************/
|
|
class NeuralNetwork{
|
|
|
|
/* CREATES A NEW NEURAL NETWORK
|
|
*
|
|
* @generations<int> Maximum number of generations to process
|
|
* @genomes<int> Number of genomes per generation
|
|
*
|
|
* @return nn<NeuralNetwork> New NeuralNetwork
|
|
*
|
|
*/
|
|
public static function create($generations=null, $genomes=null){
|
|
/* Propagate instance creation */
|
|
return new NeuralNetworkCore($generations, $genomes);
|
|
}
|
|
|
|
/* LOADS A NEURAL NETWORK FROM STORAGE
|
|
*
|
|
* @storage<String> Path to storage
|
|
*
|
|
* @return nn<NeuralNetwork> Loaded NeuralNetwork
|
|
*
|
|
*/
|
|
public static function load($storage=null){
|
|
|
|
/* (1) Checks argument */
|
|
if( is_null($storage=NeuralNetworkCore::getStorage($storage)) )
|
|
throw new \Exception('Wrong NeuralNetwork loader\'s argument.');
|
|
|
|
/* (2) If files doesn't exist, raise error */
|
|
if( !$storage['nn']['exists'] )
|
|
throw new \Exception('Loaded storage have file(s) missing.');
|
|
|
|
/* (3) Unserialize last NeuralNetwork */
|
|
$last_network = FileManager::read($storage['nn']['filename']);
|
|
|
|
/* (4) Creates and fill instance */
|
|
$instance = new NeuralNetworkCore(0, 0);
|
|
$instance->unserialize($last_network);
|
|
|
|
/* (5) Returns instance */
|
|
return $instance;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|