<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Six Degrees of Separation (friend of a friend)</title>
	<atom:link href="http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Thu, 16 May 2013 18:42:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: Ilja</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-46659</link>
		<dc:creator>Ilja</dc:creator>
		<pubDate>Fri, 20 Aug 2010 15:33:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-46659</guid>
		<description>Ich beschaeftige mich schon seit recht langer Zeit mit diesem Thema. Zur gerade mal wieder etwas intensiver. Bei einem Graphen in &quot;Xing&quot; Größe (~9Mio User und geschätzten durchschnittlichen Kontakten von 100) behaupte ich mal: Breitensuche kann man vergessen, SQL kann man vergessen, Graphen-Algorithmen kann man vergessen ... Vorberechnen von Daten kann man auch vergessen.

Die Lösung auf die ich gekommen bin ist denkbar einfach - Alle Kontaktlisten (sortiert) im Speicher, einfache Datenstrukturen, hochoptimierte Schnittmengen-Funktion und dann Brute-Force durch die Listen (in C) solange bis genug Ergebnisse vorhanden sind. Bislang sieht es ganz gut aus. Die Anzahl der User ist dabei vollkommen egal - das einzige was zaehlt ist der Wert der durchschnittlichen Kontakte pro User (bei 100 Kontakten ist auf Distanz 6 mit theoretischen 100^6 Pfad-Enden zu rechnen!).

Was mich sehr interessieren würde:

Kennt jemand von euch die durchschnittliche Kontakte-Anzahl in &quot;großen&quot; Communities? Klar sieht man immer wieder Leute (bei Xing) die 5000+ Kontakte haben - aber wie gesagt, was zaehlt ist der Durchschnitt.</description>
		<content:encoded><![CDATA[<p>Ich beschaeftige mich schon seit recht langer Zeit mit diesem Thema. Zur gerade mal wieder etwas intensiver. Bei einem Graphen in &#8220;Xing&#8221; Größe (~9Mio User und geschätzten durchschnittlichen Kontakten von 100) behaupte ich mal: Breitensuche kann man vergessen, SQL kann man vergessen, Graphen-Algorithmen kann man vergessen &#8230; Vorberechnen von Daten kann man auch vergessen.</p>
<p>Die Lösung auf die ich gekommen bin ist denkbar einfach &#8211; Alle Kontaktlisten (sortiert) im Speicher, einfache Datenstrukturen, hochoptimierte Schnittmengen-Funktion und dann Brute-Force durch die Listen (in C) solange bis genug Ergebnisse vorhanden sind. Bislang sieht es ganz gut aus. Die Anzahl der User ist dabei vollkommen egal &#8211; das einzige was zaehlt ist der Wert der durchschnittlichen Kontakte pro User (bei 100 Kontakten ist auf Distanz 6 mit theoretischen 100^6 Pfad-Enden zu rechnen!).</p>
<p>Was mich sehr interessieren würde:</p>
<p>Kennt jemand von euch die durchschnittliche Kontakte-Anzahl in &#8220;großen&#8221; Communities? Klar sieht man immer wieder Leute (bei Xing) die 5000+ Kontakte haben &#8211; aber wie gesagt, was zaehlt ist der Durchschnitt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Michael</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-42917</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Thu, 15 Apr 2010 09:08:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-42917</guid>
		<description>Klingt ganz interessant, wir betreiben selbst ein großes Social Network, hier haben wir es allerdings anders lösen müssen, da es bei über 88Mio Verbindungen zwischen Usern dann doch ein wenig schwer wird ;)

Die Freundestabelle hat 3,4GB =)</description>
		<content:encoded><![CDATA[<p>Klingt ganz interessant, wir betreiben selbst ein großes Social Network, hier haben wir es allerdings anders lösen müssen, da es bei über 88Mio Verbindungen zwischen Usern dann doch ein wenig schwer wird <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Die Freundestabelle hat 3,4GB =)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mijane Blog</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-32317</link>
		<dc:creator>mijane Blog</dc:creator>
		<pubDate>Sat, 06 Jun 2009 21:35:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-32317</guid>
		<description>&lt;strong&gt;Friend of a Friend...&lt;/strong&gt;


Heute möchet ich euch ein kleine Klasse von mir vorstellen, die die Verbindung von einem User über Verbindungen zu anderen Usern bis zum gesuchten User erstellt vorstellen. Diese Funktion ist manchen vielleicht von Xing oder anderen Netzwerken beka...</description>
		<content:encoded><![CDATA[<p><strong>Friend of a Friend&#8230;</strong></p>
<p>Heute möchet ich euch ein kleine Klasse von mir vorstellen, die die Verbindung von einem User über Verbindungen zu anderen Usern bis zum gesuchten User erstellt vorstellen. Diese Funktion ist manchen vielleicht von Xing oder anderen Netzwerken beka&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Ludwig</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-29666</link>
		<dc:creator>Ludwig</dc:creator>
		<pubDate>Wed, 22 Apr 2009 14:31:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-29666</guid>
		<description>@backflash &quot;Vertrauenswürdige Pfade klingen ziemlich interessant, wobei man Vertrauen nicht wirklich quantifizieren kann. &quot;

Im konkreten fall gehts darum ob man die person schon sehr lange persönlich kennt, oder erst seit kurzem, oder nur mit der person telefoniert/gemailt hat... usw.

Könnte mir aber auch vorstellen das man damit zb. ein &quot;Web of Trust&quot; aufbauen könnte, wie es auch zb. CACert verwendet. (Personen werden durch andere Personen &quot;beglaubigt&quot;.)</description>
		<content:encoded><![CDATA[<p>@backflash &#8220;Vertrauenswürdige Pfade klingen ziemlich interessant, wobei man Vertrauen nicht wirklich quantifizieren kann. &#8221;</p>
<p>Im konkreten fall gehts darum ob man die person schon sehr lange persönlich kennt, oder erst seit kurzem, oder nur mit der person telefoniert/gemailt hat&#8230; usw.</p>
<p>Könnte mir aber auch vorstellen das man damit zb. ein &#8220;Web of Trust&#8221; aufbauen könnte, wie es auch zb. CACert verwendet. (Personen werden durch andere Personen &#8220;beglaubigt&#8221;.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Ludwig</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-29664</link>
		<dc:creator>Ludwig</dc:creator>
		<pubDate>Wed, 22 Apr 2009 14:27:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-29664</guid>
		<description>@sargon: Keine Frage. Aber wie es auch im artikel steht &quot;genug raum für optimierung&quot; SQL bietet ja selbst die möglichkeit mit binären bäumen zu arbeiten. vgl. http://www.teialehrbuch.de/Kostenlose-Kurse/SQL/14695-Binaere-Baeume.html bzw http://www.artfulsoftware.com/infotree/queries.php?&amp;bw=1680#766

In ein paar wochen kann ich dir sagen ab welcher user bzw verbinungsanzahl die &quot;just in time&quot; berechnung nicht mehr funktioniert :-) Der Vorteil ist ja daß die Querys sehr einfach sind, und auch das Result nicht sehr groß ist, dh. man kann hier den querycache von zb. MySQL voll ausnutzen, und Hauptspeicher kostet ja heutzutage nichts mehr. (erst vorige woche 8GB für meine Workstation um 89 euro erstanden :-)

@Tobias: Binäre Indexierung kannte ich auch nicht, aber ich denke er meint die Binäre Suche (vgl. http://de.wikipedia.org/wiki/Bin%C3%A4re_Suche )</description>
		<content:encoded><![CDATA[<p>@sargon: Keine Frage. Aber wie es auch im artikel steht &#8220;genug raum für optimierung&#8221; SQL bietet ja selbst die möglichkeit mit binären bäumen zu arbeiten. vgl. <a href="http://www.teialehrbuch.de/Kostenlose-Kurse/SQL/14695-Binaere-Baeume.html" rel="nofollow">http://www.teialehrbuch.de/Kostenlose-Kurse/SQL/14695-Binaere-Baeume.html</a> bzw <a href="http://www.artfulsoftware.com/infotree/queries.php?&#038;bw=1680#766" rel="nofollow">http://www.artfulsoftware.com/infotree/queries.php?&#038;bw=1680#766</a></p>
<p>In ein paar wochen kann ich dir sagen ab welcher user bzw verbinungsanzahl die &#8220;just in time&#8221; berechnung nicht mehr funktioniert <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Der Vorteil ist ja daß die Querys sehr einfach sind, und auch das Result nicht sehr groß ist, dh. man kann hier den querycache von zb. MySQL voll ausnutzen, und Hauptspeicher kostet ja heutzutage nichts mehr. (erst vorige woche 8GB für meine Workstation um 89 euro erstanden <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>@Tobias: Binäre Indexierung kannte ich auch nicht, aber ich denke er meint die Binäre Suche (vgl. <a href="http://de.wikipedia.org/wiki/Bin%C3%A4re_Suche" rel="nofollow">http://de.wikipedia.org/wiki/Bin%C3%A4re_Suche</a> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Tobias</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-29534</link>
		<dc:creator>Tobias</dc:creator>
		<pubDate>Mon, 20 Apr 2009 20:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-29534</guid>
		<description>Binäre Indexierung?
Noch nie gehört, hast du vllt irgendwelche Research-Paper oder andere Informationen?</description>
		<content:encoded><![CDATA[<p>Binäre Indexierung?<br />
Noch nie gehört, hast du vllt irgendwelche Research-Paper oder andere Informationen?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: sargon</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/six-degrees-of-seperation-friend-of-a-friend/comment-page-1/#comment-29487</link>
		<dc:creator>sargon</dc:creator>
		<pubDate>Mon, 20 Apr 2009 06:54:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=2498#comment-29487</guid>
		<description>Moin,

die Frage ist nur ob man mit so einem diskreten Ansatz noch durch die Daten kommt,
diese Portale haben ja ohne problem 10-20k Benutzer und da ist so 
eine Suche schon nicht mehr just-in-time zu lösen. Also entweder eine Online
Variante von der Breitensuche oder man hat die dabei entstehenden Bäume eh schon
in der datenbank vorliegen, und Bäume lassen sich mit Hilfe von Binärer Indexierung 
gut in der DB ablegen. Ja, ist ne ganze Ecke informationen die da Anfallen, aber
solche Portale verdienen ihr Geld ja auch mit der Analyse solcher Netzwerke.

mfg</description>
		<content:encoded><![CDATA[<p>Moin,</p>
<p>die Frage ist nur ob man mit so einem diskreten Ansatz noch durch die Daten kommt,<br />
diese Portale haben ja ohne problem 10-20k Benutzer und da ist so<br />
eine Suche schon nicht mehr just-in-time zu lösen. Also entweder eine Online<br />
Variante von der Breitensuche oder man hat die dabei entstehenden Bäume eh schon<br />
in der datenbank vorliegen, und Bäume lassen sich mit Hilfe von Binärer Indexierung<br />
gut in der DB ablegen. Ja, ist ne ganze Ecke informationen die da Anfallen, aber<br />
solche Portale verdienen ihr Geld ja auch mit der Analyse solcher Netzwerke.</p>
<p>mfg</p>
]]></content:encoded>
	</item>
</channel>
</rss>
