-
Notifications
You must be signed in to change notification settings - Fork 2
/
PreferentialAttachmentLinkPredictor.cpp
24 lines (18 loc) · 1.41 KB
/
PreferentialAttachmentLinkPredictor.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
------------------------------------------------
Copyright (C) 2010 by Ryan N. Lichtenwalter
Email: rlichtenwalter@gmail.com
This file is part of LPmade.
LPmade is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. LPmade is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with LPmade. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------
*/
#include "PreferentialAttachmentLinkPredictor.h"
PreferentialAttachmentLinkPredictor::PreferentialAttachmentLinkPredictor( const WeightedNetwork& network, const WeightedNetwork& completeNetwork ) : LinkPredictor(network,completeNetwork) {
}
PreferentialAttachmentLinkPredictor::~PreferentialAttachmentLinkPredictor() {
}
double PreferentialAttachmentLinkPredictor::generateScore( unsigned int vertex, unsigned int neighbor ) {
unsigned int vertexNeighbors = this->network.outNeighbors( vertex ).size();
unsigned int neighborNeighbors = this->network.inNeighbors( neighbor ).size();
return (double)(vertexNeighbors*neighborNeighbors);
}