Algoritmin aikakompleksisuudesta

Jos hakukone käyttää binääristä hakupuuta tulosten seulonnassa yhtenä ratkaisunaan tietorakenteista, niin aikakompleksisuus

log2(30 triljoonaa) laskimeni antaa tulokseksi 64.7015963 tarkalleen ottaen tasan, niin kertooko tuo luku tarvittavien hakujen määrän, jotta kaikki puun solmut tulevat käydyksi läpi, jos jokaisella isäsolmulla on kaksi lapsisolmua, eikä puu sisällä yhtään lehteä.
10401
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat
Aloittaja

Kirjotiin blogiini artikkelin otsikolla "Googlen hakualgoritmi ja sen aikakompleksisuus", kun kerta käytin sunnuntai-iltani aika tehokkaasti tuon binääripuuhaun tutkimiseen. Kaiken lisäksi Google ei käy kaikkia 30 triljoonaa sivua läpi joka hakukerralla, ja näyttääkin vain 10 tulosta per sivu. Eli se voi hakea uusia sivuja omasta tietokannastaan ja omilla mentelmillään säikeistettynä samalla, kun asiakas lukee aiempia hakutulossivuja.

https://tietokoneblogi.wordpress.com/2017/08/27/googlen-hakualgoritmi-ja-sen-aikakompleksisuus/

Äänestä
Aloittaja

Tein Twitter-kyselynkin aiheesta, käyttääkö lukijoideni mielestä modernit hakukoneet edes osaksi tietorakenne, tai hyödyntää jonain ilmentymänä binääristä puuhakua, kun tutustuin Ericin kaaviokuvaan.

Lyhytosoite kyselyyn olisi
https://goo.gl/tHMpHu

Äänestä

Aika suuria kyselet. Google ei ole tainnut julkistaa hakualgoritmeistansa juuri mitään yleiseen tietoon. Ilmeisesti käyttävät jonkinlaista koneoppimista.

Äänestä
  • Taisinpa puhua puuta heinää. Koneoppiminen ei taida liittyä itse hakemiseen vaikkakin sitä kai käytetään mm. kuvahaussa tunnistamaan mitä kuvissa esiintyy.

    https://en.wikipedia.org/wiki/PageRank

    Sen siitä saa kun kirjoittaa ennenkun ajattelee.

    Äänestä

En tiedä mitä tietorakenteita tai hakualgoritmeja hakukoneet käyttävät. Mutta tuskin mitää niin alkeellista kuin binääripuu. Veikkaisin jonkinllaista sumeaa hash-tekniikkaa ensimmäiseksi datan rajaukseksi sekä ehkä rinnakkaisprosessointia syvempään analyysiin. Hakutuloksilla on prioriteetit, ja 1. haku hakee ilmeisesti vain korkeimman prioroteetin tulokset.

Äänestä
Aloittaja

No joo, mutta binäripuu, jos se on tasapainossa, suoritusaika kasvaa logaritmifunktion mukaan, eli todella nopeasti on käytävissä läpi. Sori, "tasapaino":isella tarkoitan kokonaista tai aitoa binääripuuta. Tuo luku 64 ja risat, jonka sain laskimestani blogiartikkelini taustatietoja kaivaessani viittaa varmaankin puun kokoon 30 triljoonan sivuolion hakutietokantaan, joka Googlella on, eli kyseessä olisi ainoastaan 64 solmuinen binääripuu?

Äänestä

Millähän perusteella meinasit lajitella kaikki internetsivut binääripuuhun? Internetin rakenne taitaa olla hieman monimutkaisempi graafi.

>log2(30 triljoonaa) laskimeni antaa tulokseksi 64.7015963 tarkalleen ottaen tasan, niin kertooko tuo luku tarvittavien hakujen määrän, jotta kaikki puun solmut tulevat käydyksi läpi, jos jokaisella isäsolmulla on kaksi lapsisolmua, eikä puu sisällä yhtään lehteä.

Ei. Tuo kertoo maksimivertailujen määrän jolla jokin solmu binääripuusta löytyy. Lehtiähän binääripuussa on väkisinkin mutta ilmeisesti tarkoitat sitä että puu on täydellisesti järjestetty eli toisinsanoen puun korkeus on niin matala kuin voi olla?

Äänestä

Suosittelisin myös käyttämään kotisivusi bannerissa png-tiedostotyyppiä jpg:n sijasta. Antaa aika amatöörimäisen ensivaikutelman noin huonolaatuinen kuva tietokoneaiheisella sivulla.

Äänestä
Aloittaja

No joo, onhan konekuvani hieman retro niinkuin olen vähän itsekin kait.

No meinasin sitä, että kun N log(n) on nopein keino etsiä suuresta datajoukosta jotain tietoa, jos Googlen hakurobotit hyödyntää kyseistä tietorakennetta jollain tasolla?

Google perustettiin vuonna 1998, eli toisin sanoen hakubotit käynnistettiin joko silloin ja aikaisemmin, ja ajan mittaan tietomäärä tosiaan paisunut aika moiseksi ja koko ajan tulee lisää lajiteltavaa tietoa tietokantoihin.

Äänestä

Joo, niin kai antaa, muttet ottanut huomioon "tekoälyä", rutiineja, jotka pyyhkivät pölyt random kyselyistä

Äänestä

Kommentoi aloitusta


jerzunposti kirjoitti:

Jos hakukone käyttää binääristä hakupuuta tulosten seulonnassa yhtenä ratkaisunaan tietorakenteista, niin aikakompleksisuus

log2(30 triljoonaa) laskimeni antaa tulokseksi 64.7015963 tarkalleen ottaen tasan, niin kertooko tuo luku tarvittavien hakujen määrän, jotta kaikki puun solmut tulevat käydyksi läpi, jos jokaisella isäsolmulla on kaksi lapsisolmua, eikä puu sisällä yhtään lehteä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu