Bir ağaç oluşturmaya çalışıyorum (sonunda bir "sinir ağında" kullanılmak üzere ve kurulumu mümkün olduğunca verimli hale getirmeye çalışıyorum. Maalesef ağacın kurulumu bile yaklaşık 3 dakika sürüyor. Bunun ne kadar verimsiz olduğunu anlayamıyorum: Yükü en aza indirgemek için mümkün olan her yerde işaretçiler kullanmaya çalıştım ama hala sonsuza kadar sürüyor.Ne yanlış yapıyorum? Bir Tic Tac Toe AI (evet biliyorum sadece aptal oyun bakarak çözülebilir, ama ben kendimi nasıl öğretmek için basit bir AI olarak yapmak istedim.Verimlilik C++
Ağacın her dalında 9 düğüm olacaktı, Her düğüm başka bir yapmak için dallara ayrılıyor 9. Bu, son dallar kümesini yaklaşık 400 milyon düğüm verir. Bu kodu daha verimli bir şekilde yapmanın bir yolu var mı?
#include <iostream>
#include <vector>
using namespace std;
class Node;
class Set;
class Node {
public:
Node(double, Set*);
Node();
double value;
Set * nextSet;
};
class Set {
public:
Set(vector<Node *>);
Set();
vector<Node *> nodes;
};
class NeuralNet {
public:
Set * firstSet;
};
Node::Node(double val, Set * newSet){
value = val;
nextSet = newSet;
}
Set::Set(vector<Node *> input){
nodes = input;
}
Node::Node(){
Set temp;
nextSet = &temp;
}
Set::Set(){
vector<Node *> temp;
nodes = temp;
}
void setUpNeuralNetRecursive(Set * curSet, int curDepth){
if(curDepth<9){
for(int i=0;i<9;i++){
Set newSet;
Node newNode(1,&newSet);
(*curSet).nodes.push_back(&newNode);
setUpNeuralNetRecursive(&newSet, curDepth+1);
}
}
}
void setUpNeuralNet(NeuralNet net){
Set newSet;
net.firstSet=&newSet;
setUpNeuralNetRecursive(&newSet, 0);
}
int main()
{
cout << "Setting up neural network. This may take up to 3 minutes." << endl;
NeuralNet net;
setUpNeuralNet(net);
cout << "Setup ended." << endl;
return 0;
}
Bunu bir profiler aracılığıyla çalıştırmayı denediniz mi? ya da başka insanların nasıl bir tac-toe-toe oynuyor? – GWW
işaretçileri kullanmak için değiştirerek kötü bir fikirdi. Şimdi yavaş yavaş yerine yavaş yavaş _and_. –
Yavaşlık muhtemelen, yaratılan veriye sahip olan 512+ vektörün oluşturulduğu ve daha sonra hemen imha edildiği vektörlerdir. –