Liittyykö Complexity Theory työhön?

HämmästysHarrastaja

Minulle yksi sanoi, että kompleksisuusteoria (kuulemma englanniksi kulkee nimellä Computational Complexity Theory) olisi oleellinen osa tietojenkäsittelytiedettä. Itse ne ole moisesta kuullutkaan, ja netin vilkaisun perusteella minulle tuli kuva, että se on pelkkää teoriaa, jota ei käytännön ohjelmointityössä tarvita.

Miten on?

24

288

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 23

      Yliopisto on siitä kiva paikka että siellä voi vielä toistaiseksi opiskella kaikkea mielenkiintoista ilman mitään kosketusta reaalimaailmaan. Nauti siitä kun vielä voit.

      • HämmästysHarrastaja

        23,

        miksi luulet, että opiskelisin yliopistossa tuollaisia teoreettisia asioita kuten vaikka juuri tuo Complexity Theory.

        Minä olen ohjelmoinnin harrastelija, joka ei tuollaisesta koskaan ennen ole kuullutkaan.


      • HämmästysHarrastaja
        HämmästysHarrastaja kirjoitti:

        23,

        miksi luulet, että opiskelisin yliopistossa tuollaisia teoreettisia asioita kuten vaikka juuri tuo Complexity Theory.

        Minä olen ohjelmoinnin harrastelija, joka ei tuollaisesta koskaan ennen ole kuullutkaan.

        Täytyy tosin lisätä, että mikäli ymmärsin asiasta pikaisesti lukemani oikein, niin "Onko P sama kuin NP"-ongelman ratkaisusta voisi kyllä olla käytännöllisiä hyötyjäkin.

        Lienee siis "ilman mitään kosketusta reaalimaailmaan" liian voimakkaasti sanottu sinulta, vaikka palkkansa ohjelmoinnista ansaitsevista suurin osa ei toki tuollaisiin kysymyksiin työssään koskaan törmää.


    • Bin-Search

      Tuo kuuluu ihan perustietämykseen tietojenkäsittelytieteessä ja tulee vähintäänkin ymmärtää, vaikkei osata tarvitsisikaan.

      Ei ole todellakaan haittaa siitä että ymmärtää mikä ero on esim. O(1) ja O(n) kompleksisuuksilla. Tämä niinkin esoteeriselta kuulostava asia liittyy niinkin arkipäiväiseen asiaan kuin tiedon etsiminen... oletko koskaan etsinyt tietoa? Tiesitkö ettei sitä tarvitse aina tehdä for-loopilla ja miksi HashTable on niin helkkarin nopea.

      Jos asia ei edes kiinnosta, niin koitappa vältellä aihetta ja paranna siten mahdollisuuksiasi työhaastatteluissa. Tänä päivänä siellä ovat samalla viivalla sinun kanssa sekä käytännössä että teoriassa vahvoilla olevia työnsä menettäneitä ohjelmoijia.

      Tällä hetkellä oletus on että melkein pitäisi tietää kaikki kaikesta että kelpaa töihin. Maailma ei todellakaan näytä samalta kuin vuonna 2000, jolloin luvattiin jokaisessa koulussa 100% työllisyys softakehittäjille.

      Wikipedian suomenkielinen sisältö aiheesta antaa vähän osviittaa, mutta on todella puutteellinen. http://fi.wikipedia.org/wiki/Aikavaativuusluokka Ei noita kompleksisuusanalyysejä paljon kukaan töissä tee, mutta asian ymmärtäminen on suositeltavaa.

    • Bin-Search

      Niin siis Se yksi on aivan oikeassa, kun noin sanoi. Et ilmeisesti ole kovin perillä tietojenkäsittelystä, kun tuo on nimenomaan sitä _käsittelyä_ koskeva juttu. Eli sinä koodailet mitä sattuu ymmärtämättä mistään mitään? Siltä sinusta ainakin tulisi nyt tuntua. Otat vain neuvosta vaarin ja opiskelet asiaa. Käske sen Yhden kertoa alustavasti mistä on kyse.

      • HämmästysHarrastaja

        Bin-Search,

        etkö nyt kuitenkin vähän liioittele tuon teoreettisen puolen tärkeyttä, sillä Sen Yhden juttujen (puhuin tänään) ja oman esiymmärrykseni perusteella ajattelen, että ei mm. ammattikorkeapuolella tuollaisista juuri puhuta, mutta kelpaavat sieltä valmistuvatkin moneen ohjelmointityöhön. Tavallisissa/teknillisissä yliopistoissa tuollaisesta kompleksisuudesta on omiakin kursseja, joku ehkä pakollisenakin, mutta ne voi läpäistä syvempää ymmärrystä saavuttamatta ja käytännön ohjelmointityössä, kuten täälläkin sanottiin, tuollaiset hakualgoritmit ym. on valmiina käytössä niin, että riittää osata niiden perussoveltaminen tarvitsematta ymmärtää miksi ne toimivat niin kuin toimivat eli miksi toimivat oikein ja miksi ovat tehokkaita.

        Puhuit sikälikin vähän eri asiasta, sillä eikös yleensä "Onko P sama kuin NP"-jutut käsitellä eri kurssissa kuin algoritmien perusvaativuusjutut, joiden yhteydessä esitellään yleensä juuri tällaisia tärkeitä hakualgoritmeja ym. ja todistetaan niiden oikeellisuus ja aikavaativuus. Tarkoitan sanoa, että Complexity Theory:kin on jo teoreettisempaa materiaalia kuin käytännössä tärkeät perusalgoritmit hakemisen ym. saralta.

        Näin olen siis ymmärtänyt.


      • Bin-Search
        HämmästysHarrastaja kirjoitti:

        Bin-Search,

        etkö nyt kuitenkin vähän liioittele tuon teoreettisen puolen tärkeyttä, sillä Sen Yhden juttujen (puhuin tänään) ja oman esiymmärrykseni perusteella ajattelen, että ei mm. ammattikorkeapuolella tuollaisista juuri puhuta, mutta kelpaavat sieltä valmistuvatkin moneen ohjelmointityöhön. Tavallisissa/teknillisissä yliopistoissa tuollaisesta kompleksisuudesta on omiakin kursseja, joku ehkä pakollisenakin, mutta ne voi läpäistä syvempää ymmärrystä saavuttamatta ja käytännön ohjelmointityössä, kuten täälläkin sanottiin, tuollaiset hakualgoritmit ym. on valmiina käytössä niin, että riittää osata niiden perussoveltaminen tarvitsematta ymmärtää miksi ne toimivat niin kuin toimivat eli miksi toimivat oikein ja miksi ovat tehokkaita.

        Puhuit sikälikin vähän eri asiasta, sillä eikös yleensä "Onko P sama kuin NP"-jutut käsitellä eri kurssissa kuin algoritmien perusvaativuusjutut, joiden yhteydessä esitellään yleensä juuri tällaisia tärkeitä hakualgoritmeja ym. ja todistetaan niiden oikeellisuus ja aikavaativuus. Tarkoitan sanoa, että Complexity Theory:kin on jo teoreettisempaa materiaalia kuin käytännössä tärkeät perusalgoritmit hakemisen ym. saralta.

        Näin olen siis ymmärtänyt.

        Logiikallasi voidaan melkeinpä sanoa että C/C ohjelmointi on ihan turhaa teoretisointia, kun sitä tarvitaan vain laiteläheisessä ohjelmoinnissa, joka ei todellakaan ole nykyisin se yleisin kohderyhmä, kun kaikki tehdään kuitnekin webiin. Antaa niiden Apachen koodereiden hikoilla tuskissaan vaan ja nautitaan weppikäyttöliittymistä ja jaavaskriptistä.

        Oletko koskaan joutunut koodaamaan yhtäkään algoritmia itse? On erittäin yleinen harhaluulo että kaikki algoritmit ovat valmiiksi toteutettuna. Ne ovat valmiita standardikirjastojen osalta, mutta mitäpä teet, kun vastaasi tulee se ensimmäinen kerta ettei olekaan. Tai no... voiko se AMKkilaiselle tullakaan vastaan? ... Se on toki ihan oikeutettu kysymys, eli voit kyllä olla oikeassakin.

        En ole muuten ammatikseni koodannut päivääkään C/C :lla. matho tuossa alhaalla antoikin aivan olennaista lisäpontta aiheeseen.


      • HämmästysHarrastaja
        Bin-Search kirjoitti:

        Logiikallasi voidaan melkeinpä sanoa että C/C ohjelmointi on ihan turhaa teoretisointia, kun sitä tarvitaan vain laiteläheisessä ohjelmoinnissa, joka ei todellakaan ole nykyisin se yleisin kohderyhmä, kun kaikki tehdään kuitnekin webiin. Antaa niiden Apachen koodereiden hikoilla tuskissaan vaan ja nautitaan weppikäyttöliittymistä ja jaavaskriptistä.

        Oletko koskaan joutunut koodaamaan yhtäkään algoritmia itse? On erittäin yleinen harhaluulo että kaikki algoritmit ovat valmiiksi toteutettuna. Ne ovat valmiita standardikirjastojen osalta, mutta mitäpä teet, kun vastaasi tulee se ensimmäinen kerta ettei olekaan. Tai no... voiko se AMKkilaiselle tullakaan vastaan? ... Se on toki ihan oikeutettu kysymys, eli voit kyllä olla oikeassakin.

        En ole muuten ammatikseni koodannut päivääkään C/C :lla. matho tuossa alhaalla antoikin aivan olennaista lisäpontta aiheeseen.

        Bin-Search,

        kirjoitustyylisi on omituisen hyökkäävä, nyt sanot minua AMKlaiseksi halventavaan sävyyn.

        Olenko koodannut yhtään algoritmia itse riippuu siitä miten algoritmin koodaaminen määritellään. Oikeastaan montakin eri ohjelmaa tai sellaisen aliosuutta voinee kutsua algoritmiksi, ja silloin olen koodannut algoritmin itse, mutta sen suorittamat tiedonhaut yms. olen suorittanut standardikirjastojen ja vastaavien avulla. Vähän kärjistäen voi sanoa, että olen oman algoritmini "parsinut kokoon" käyttäen siinä useita valmiita algoritmeja, jolloin halutunlaisen yhdistelmän kokoonparsiminen on ollut omaakin luovuuttani, mutta työn pääosa perustuu silti valmiisiin algoritmeihin.

        Näin luulisin asian olevan myös silloin, kun työtään tekevät ne kohottamasi tavallisista/teknillisistä yliopistoista valmistuneet ohjelmoijat. Kaiketi heistäkään hyvin harva joutuu itse pohtimaan aika- ja tilakompleksisuuden kaltaisia asioita, kun he hyödyntävät omassa ohjelmassaan noita valmiita kirjastojen perusalgoritmeja haussa, lajittelussa jne. Jos oman algoritminsa kanssa joutuu syvällisesti pohtimaan tällaisia kysymyksiä, kyse luultavasti on algoritmitutkijan työstä, johon yliopistostakin valmistuneista ohjelmoijista pystyisi vain harva, mutta ei heidän käytännön ohjelmointityössään tarvitsekaan pystyä.

        Tiedän kyllä, että yliopistoissa opetetaan hieman tuollaisia Ordo(n)-tyylisiä aikakompleksisuusjuttuja koskien erilaisia "perusalgoritmeja", jotka usein esitetään pseudokoodilla. Tunnen kyllä yliopistosta tietojenkäsittelystä valmistuneita, ja nähdäkseni suurin osa heistä ei ole kovin hyvin omaksunut edes noita siellä opetettuja perusjuttuja, mutta ei heidän tarvitsekaan mitä työelämään tulee. Toki pieni osa heistä kykenisi vaativampaankin algoritmisuunnitteluun, ja osa tällaisista jääkin yliopistolle algoritmien tutkijoiksi.

        Lyhyesti sanoen:

        Tunnut vaativan tavalliselta ohjelmoijaltakin algoritmien osalta ymmärrystasoa, joka oikeasti on hyödyllistä lähinnä vain algoritmien ammattitutkijoille.

        Sitäpaitsi sotket vähän asioita, sillä olin kyllä jo ennestään jossain määrin tietoinen noista Ordo()-kompleksisuusjutuista. Avaukseni koski "P on NP?"-tyylistä kysymyksenasettelua, joka on vieläkin teoreettisempi kysymys kuin tiettyjen perusalgoritmien kompleksisuuden arviointi. Ymmärrät kai ylipäätään mistä nyt puhun?


      • HämmästysHarrastaja
        HämmästysHarrastaja kirjoitti:

        Bin-Search,

        kirjoitustyylisi on omituisen hyökkäävä, nyt sanot minua AMKlaiseksi halventavaan sävyyn.

        Olenko koodannut yhtään algoritmia itse riippuu siitä miten algoritmin koodaaminen määritellään. Oikeastaan montakin eri ohjelmaa tai sellaisen aliosuutta voinee kutsua algoritmiksi, ja silloin olen koodannut algoritmin itse, mutta sen suorittamat tiedonhaut yms. olen suorittanut standardikirjastojen ja vastaavien avulla. Vähän kärjistäen voi sanoa, että olen oman algoritmini "parsinut kokoon" käyttäen siinä useita valmiita algoritmeja, jolloin halutunlaisen yhdistelmän kokoonparsiminen on ollut omaakin luovuuttani, mutta työn pääosa perustuu silti valmiisiin algoritmeihin.

        Näin luulisin asian olevan myös silloin, kun työtään tekevät ne kohottamasi tavallisista/teknillisistä yliopistoista valmistuneet ohjelmoijat. Kaiketi heistäkään hyvin harva joutuu itse pohtimaan aika- ja tilakompleksisuuden kaltaisia asioita, kun he hyödyntävät omassa ohjelmassaan noita valmiita kirjastojen perusalgoritmeja haussa, lajittelussa jne. Jos oman algoritminsa kanssa joutuu syvällisesti pohtimaan tällaisia kysymyksiä, kyse luultavasti on algoritmitutkijan työstä, johon yliopistostakin valmistuneista ohjelmoijista pystyisi vain harva, mutta ei heidän käytännön ohjelmointityössään tarvitsekaan pystyä.

        Tiedän kyllä, että yliopistoissa opetetaan hieman tuollaisia Ordo(n)-tyylisiä aikakompleksisuusjuttuja koskien erilaisia "perusalgoritmeja", jotka usein esitetään pseudokoodilla. Tunnen kyllä yliopistosta tietojenkäsittelystä valmistuneita, ja nähdäkseni suurin osa heistä ei ole kovin hyvin omaksunut edes noita siellä opetettuja perusjuttuja, mutta ei heidän tarvitsekaan mitä työelämään tulee. Toki pieni osa heistä kykenisi vaativampaankin algoritmisuunnitteluun, ja osa tällaisista jääkin yliopistolle algoritmien tutkijoiksi.

        Lyhyesti sanoen:

        Tunnut vaativan tavalliselta ohjelmoijaltakin algoritmien osalta ymmärrystasoa, joka oikeasti on hyödyllistä lähinnä vain algoritmien ammattitutkijoille.

        Sitäpaitsi sotket vähän asioita, sillä olin kyllä jo ennestään jossain määrin tietoinen noista Ordo()-kompleksisuusjutuista. Avaukseni koski "P on NP?"-tyylistä kysymyksenasettelua, joka on vieläkin teoreettisempi kysymys kuin tiettyjen perusalgoritmien kompleksisuuden arviointi. Ymmärrät kai ylipäätään mistä nyt puhun?

        TARKENNUS SIIHEN MITÄ YLLÄ SANON

        Sanon:

        "
        ...
        Kaiketi heistäkään hyvin harva joutuu itse pohtimaan aika- ja tilakompleksisuuden kaltaisia asioita,
        ...
        "

        Tarkennan senverran, että pystyvät ja joutuvat he pohtimaan noita kompleksisuusjuttuja senverran mitä tarvitsee yliopistojen aihetta käsittelevillä kursseilla, joilla ei luultavasti kovinkaan syvälle mennä. Tosin tällöinkään ei kurssin läpäistääkseen tarvitse ymmärtää kovinkaan syvällisesti edes sitä miten kurssilla käsitellyt algoritmit on analysoitu mm. oikeellisuus- ja tehokkuustodistusten osalta.

        Pystymättömyydellä tarkoitin sitä, että harva yliopistostakaan valmistunut kykenee kehittämään ja toimivaksi todistamaan entistä aiempaa parempia algoritmeja mitä esim. hakujen tai optimoinnin kaltaisiin asioihin tulee, mutta ei heidän tarvitsekaan, sillä tuollainen kehittely on alan erikoistutkijoiden hommaa.


      • Bin-Search
        HämmästysHarrastaja kirjoitti:

        TARKENNUS SIIHEN MITÄ YLLÄ SANON

        Sanon:

        "
        ...
        Kaiketi heistäkään hyvin harva joutuu itse pohtimaan aika- ja tilakompleksisuuden kaltaisia asioita,
        ...
        "

        Tarkennan senverran, että pystyvät ja joutuvat he pohtimaan noita kompleksisuusjuttuja senverran mitä tarvitsee yliopistojen aihetta käsittelevillä kursseilla, joilla ei luultavasti kovinkaan syvälle mennä. Tosin tällöinkään ei kurssin läpäistääkseen tarvitse ymmärtää kovinkaan syvällisesti edes sitä miten kurssilla käsitellyt algoritmit on analysoitu mm. oikeellisuus- ja tehokkuustodistusten osalta.

        Pystymättömyydellä tarkoitin sitä, että harva yliopistostakaan valmistunut kykenee kehittämään ja toimivaksi todistamaan entistä aiempaa parempia algoritmeja mitä esim. hakujen tai optimoinnin kaltaisiin asioihin tulee, mutta ei heidän tarvitsekaan, sillä tuollainen kehittely on alan erikoistutkijoiden hommaa.

        Arvoisa HämmästysHarrastaja,

        tässä on yksinkertainen rautalankamalli kysymysten ja vastausten muodossa, jotta ymmärtäisit.

        K: Liittyykö Complexity Theory työhön?
        V: Liittyy. Ei kaikilta osin, mutta ymmärtämisestä on työssäkin hyötyä.

        K: Onko kompleksisuusteoria olennainen osa tietojenkäsittelytiedettä?
        V: Ehdottomasti kyllä.

        K: Onko ohjelmointityö tietojenkäsittelytiedettä?
        V: Ehdottomasti ei. Se on vain tuurilla/kokemuksella toimivaa häkkeröintiä, josta saa yllättäen myös palkkaa. Ei tarvitse olla tohtori tai edes tradenomi kyetäkseen jonkinlaiseen ohjelmointityöhön - kyllähän jokainen käskeä osaa.

        K: Miten kompleksisuusteoriaa sovelletaan ohjelmointityössä? Anna esimerkki.
        V: Hyvin tyypillinen tapaus on ns. paskan nostatustilanne. Kompleksisuuksista mitään ymmärtämätön ohjelmoija tekee avoimen koodin projektiin koodipäivityksen. Kyseessä voi olla esimerkiksi open source pelimoottori. Kokenut matemaatikko-ohjelmoija (koulutuksella ei väliä) näkee muutoksen ja hurjistuu. Ohjelmoija on sijoittanut valmiin O(n) -aikavaatimusluokan algoritmin ns. tiukan loopin sisälle, jossa se aiheuttaa redundantin viiveen ruudunpäivitykseen. Tuloksena on annos paskaa matemaatikko-ohjelmoijan toimesta ohjelmoijan niskaan. Ongelma oltaisiin voitu välttää, jos kyseinen ohjelmoija olisi ymmärtänyt pysyä poissa projektin aikakriittisistä osista kompetenssipuutteensa takia. Ohjelmoijaa hävettää nyt rutkasti, sillä hän on joutunut tilanteeseen, jossa vuosienkaan harrastepohjainen "koodauskokemus" ei auttanut. Jatkossa kaikki hänen muutoksensa joutuvat silmätikuiksi projektissa. Hänen olisi pitänyt ymmärtää edes vähän mitä algoritmien kompleksisuus tarkoittaa ja yleensäkin ottaa selville algoritmin kompleksisuus. KooderiKoulussaX hänelle asiasta sentään olisi mainittu etukäteen. Tämä tarina on tosi ja tapahtui eilen 2.2. eräässä avoimen koodin projektissa. En mainitse projektin nimeä, sillä en halua saattaa ketään huonoon valoon.

        K: Olisiko "Onko P sama kuin NP"-ongelman ratkaisusta hyötyä käytännössä?
        V: Ei. Miksi olisi? Valmis nopea algoritmi kauppamatkustajan ongelmaan on Buust-kirjastossa valmiina, eikä sillä ole mitään väliä miten se toimii. Ähäkutti!

        Kerro toki mitä ajatuksia se pikainen lukusi P=NP -propleemasta toi mieleesi.


      • HämmästysHarrastaja
        Bin-Search kirjoitti:

        Arvoisa HämmästysHarrastaja,

        tässä on yksinkertainen rautalankamalli kysymysten ja vastausten muodossa, jotta ymmärtäisit.

        K: Liittyykö Complexity Theory työhön?
        V: Liittyy. Ei kaikilta osin, mutta ymmärtämisestä on työssäkin hyötyä.

        K: Onko kompleksisuusteoria olennainen osa tietojenkäsittelytiedettä?
        V: Ehdottomasti kyllä.

        K: Onko ohjelmointityö tietojenkäsittelytiedettä?
        V: Ehdottomasti ei. Se on vain tuurilla/kokemuksella toimivaa häkkeröintiä, josta saa yllättäen myös palkkaa. Ei tarvitse olla tohtori tai edes tradenomi kyetäkseen jonkinlaiseen ohjelmointityöhön - kyllähän jokainen käskeä osaa.

        K: Miten kompleksisuusteoriaa sovelletaan ohjelmointityössä? Anna esimerkki.
        V: Hyvin tyypillinen tapaus on ns. paskan nostatustilanne. Kompleksisuuksista mitään ymmärtämätön ohjelmoija tekee avoimen koodin projektiin koodipäivityksen. Kyseessä voi olla esimerkiksi open source pelimoottori. Kokenut matemaatikko-ohjelmoija (koulutuksella ei väliä) näkee muutoksen ja hurjistuu. Ohjelmoija on sijoittanut valmiin O(n) -aikavaatimusluokan algoritmin ns. tiukan loopin sisälle, jossa se aiheuttaa redundantin viiveen ruudunpäivitykseen. Tuloksena on annos paskaa matemaatikko-ohjelmoijan toimesta ohjelmoijan niskaan. Ongelma oltaisiin voitu välttää, jos kyseinen ohjelmoija olisi ymmärtänyt pysyä poissa projektin aikakriittisistä osista kompetenssipuutteensa takia. Ohjelmoijaa hävettää nyt rutkasti, sillä hän on joutunut tilanteeseen, jossa vuosienkaan harrastepohjainen "koodauskokemus" ei auttanut. Jatkossa kaikki hänen muutoksensa joutuvat silmätikuiksi projektissa. Hänen olisi pitänyt ymmärtää edes vähän mitä algoritmien kompleksisuus tarkoittaa ja yleensäkin ottaa selville algoritmin kompleksisuus. KooderiKoulussaX hänelle asiasta sentään olisi mainittu etukäteen. Tämä tarina on tosi ja tapahtui eilen 2.2. eräässä avoimen koodin projektissa. En mainitse projektin nimeä, sillä en halua saattaa ketään huonoon valoon.

        K: Olisiko "Onko P sama kuin NP"-ongelman ratkaisusta hyötyä käytännössä?
        V: Ei. Miksi olisi? Valmis nopea algoritmi kauppamatkustajan ongelmaan on Buust-kirjastossa valmiina, eikä sillä ole mitään väliä miten se toimii. Ähäkutti!

        Kerro toki mitä ajatuksia se pikainen lukusi P=NP -propleemasta toi mieleesi.

        Bin-Search,

        sanoit

        "
        K: Olisiko "Onko P sama kuin NP"-ongelman ratkaisusta hyötyä käytännössä?
        V: Ei. Miksi olisi? Valmis nopea algoritmi kauppamatkustajan ongelmaan on Buust-kirjastossa valmiina, eikä sillä ole mitään väliä miten se toimii. Ähäkutti!

        Kerro toki mitä ajatuksia se pikainen lukusi P=NP -propleemasta toi mieleesi.
        "

        Kerron.

        Se herättää mieleeni ajatuksen, että vähättelet "P on NP?"-ongelman käytännön merkitystä, vaikka olet täällä painottanut tällaisten asioiden käytännön merkitystä kokoajan. No, avauksessani otsikossa luki Complexity Theory eikä COMPUTATIONAL Complexity Theory, mutta itse avauksesta kyllä kävi ilmi, että tarkoitin juuri "P on NP?"-asioita.

        Senkin ymmärsin, että kauppamatkustajan ongelmaan täysin yleisesti toimivaa ja nopeaa algoritmia ei voi olla missään kirjastossa, sillä se olisi sensaatio. Senkin ymmärsin, että NP-täydellistenkin ongelmien kohdalla tunnetaan nopeita algoritmeja, kunhan syöte ei ole täysin yleinen vaan se on rajattu tiettyyn erikoismuotoon. Usein syöte voi olla yleinenkin ja algoritmi silti nopea, kunhan tyydytään optimaalisen ratkaisun sijasta likimääräiseen "melko hyvään" ratkaisuun. Tämä kuitenkin vaihtelee ongelmasta toiseen, ja olin ymmärtävinäni, että on jopa todistettu, että tiettyihin NP-täydellisiin ongelmiin ei voi olla edes nopeita ja tarkkoja likimääräisalgoritmeja, ELLEI P=NP, mitä emme tiedä. Toisiin taas tunnetaan nopeita ja tarkkoja likimääräisalgoritmeja. Kaikki NP-täydelliset ongelmat eivät siis välttämättä ole pohjimmiltaan täysin samanlaisia.

        Siis, löytämällä polynomiaikainen täysin yleinen algoritmi NP-täydelliselle ongelmalle tuottaisi tavan ratkaista monta käytännössä tärkeää ongelmaa täysin tarkasti ja nopeasti, vaikka joillakin ongelmilla voisi käydä niin, että polynomiaikaisesuudesta huolimatta algoritmi ei olisi käytännössä nopea, sillä eksponentti voisi olla liian iso.

        Sensijaan "P ei ole NP"-todistaminen olisi tietyssä mielessä ikävä tulos, mutta ymmärsin, että silläkin olisi käytännön hyötyä ainakin sikäli, että sitä voitaisiin kenties hyödyntää kryptografiassa osoittamaan, että tietyt menetelmät ovat varmoja. Toki nytkin jo kryptografia käyttää erilaisia salauksia, mutta niiden täydellistä varmuutta ei ole kyetty todistamaan, vaan luotto menetelmiin perustuu pitkälti siihen, että suuresta työstä huolimatta kukaan ei ole kyennyt niitä murtamaan.

        Molemmista vaihtoehdoista (=todistus sille, että "P on NP" tai "P ei ole NP") voitaisiin siis kaivaa käytännön hyötyäkin.

        Ähäkutti!-huudahduksesi kuulosti jo vähän riidan haastamiselta.


      • Bin-Search
        HämmästysHarrastaja kirjoitti:

        Bin-Search,

        sanoit

        "
        K: Olisiko "Onko P sama kuin NP"-ongelman ratkaisusta hyötyä käytännössä?
        V: Ei. Miksi olisi? Valmis nopea algoritmi kauppamatkustajan ongelmaan on Buust-kirjastossa valmiina, eikä sillä ole mitään väliä miten se toimii. Ähäkutti!

        Kerro toki mitä ajatuksia se pikainen lukusi P=NP -propleemasta toi mieleesi.
        "

        Kerron.

        Se herättää mieleeni ajatuksen, että vähättelet "P on NP?"-ongelman käytännön merkitystä, vaikka olet täällä painottanut tällaisten asioiden käytännön merkitystä kokoajan. No, avauksessani otsikossa luki Complexity Theory eikä COMPUTATIONAL Complexity Theory, mutta itse avauksesta kyllä kävi ilmi, että tarkoitin juuri "P on NP?"-asioita.

        Senkin ymmärsin, että kauppamatkustajan ongelmaan täysin yleisesti toimivaa ja nopeaa algoritmia ei voi olla missään kirjastossa, sillä se olisi sensaatio. Senkin ymmärsin, että NP-täydellistenkin ongelmien kohdalla tunnetaan nopeita algoritmeja, kunhan syöte ei ole täysin yleinen vaan se on rajattu tiettyyn erikoismuotoon. Usein syöte voi olla yleinenkin ja algoritmi silti nopea, kunhan tyydytään optimaalisen ratkaisun sijasta likimääräiseen "melko hyvään" ratkaisuun. Tämä kuitenkin vaihtelee ongelmasta toiseen, ja olin ymmärtävinäni, että on jopa todistettu, että tiettyihin NP-täydellisiin ongelmiin ei voi olla edes nopeita ja tarkkoja likimääräisalgoritmeja, ELLEI P=NP, mitä emme tiedä. Toisiin taas tunnetaan nopeita ja tarkkoja likimääräisalgoritmeja. Kaikki NP-täydelliset ongelmat eivät siis välttämättä ole pohjimmiltaan täysin samanlaisia.

        Siis, löytämällä polynomiaikainen täysin yleinen algoritmi NP-täydelliselle ongelmalle tuottaisi tavan ratkaista monta käytännössä tärkeää ongelmaa täysin tarkasti ja nopeasti, vaikka joillakin ongelmilla voisi käydä niin, että polynomiaikaisesuudesta huolimatta algoritmi ei olisi käytännössä nopea, sillä eksponentti voisi olla liian iso.

        Sensijaan "P ei ole NP"-todistaminen olisi tietyssä mielessä ikävä tulos, mutta ymmärsin, että silläkin olisi käytännön hyötyä ainakin sikäli, että sitä voitaisiin kenties hyödyntää kryptografiassa osoittamaan, että tietyt menetelmät ovat varmoja. Toki nytkin jo kryptografia käyttää erilaisia salauksia, mutta niiden täydellistä varmuutta ei ole kyetty todistamaan, vaan luotto menetelmiin perustuu pitkälti siihen, että suuresta työstä huolimatta kukaan ei ole kyennyt niitä murtamaan.

        Molemmista vaihtoehdoista (=todistus sille, että "P on NP" tai "P ei ole NP") voitaisiin siis kaivaa käytännön hyötyäkin.

        Ähäkutti!-huudahduksesi kuulosti jo vähän riidan haastamiselta.

        Okei, myönnetään että olet loppujen lopuksi ihan fiksu kaveri (ehkä jopa fiksumpi kuin itse olen tai ainakin siltä tuntuu), mutta huumorissa voisi olla vielä petrattavaa.

        Tuo viimeinen kysymys-vastaus -pari oli puhdas vitsi.

        Sen voin sanoa kokemuksesta, että yliopistomaailmassa kaikki "lupaava" on 99%:sti täyttä paskapuhetta ja spekulointia. Aina pitää hehkuttaa kaikkea rahoituksen toivossa. Ja sitten nekin rahat pöllii joku muu.


      • Bin-Baden-Baden
        HämmästysHarrastaja kirjoitti:

        Bin-Search,

        sanoit

        "
        K: Olisiko "Onko P sama kuin NP"-ongelman ratkaisusta hyötyä käytännössä?
        V: Ei. Miksi olisi? Valmis nopea algoritmi kauppamatkustajan ongelmaan on Buust-kirjastossa valmiina, eikä sillä ole mitään väliä miten se toimii. Ähäkutti!

        Kerro toki mitä ajatuksia se pikainen lukusi P=NP -propleemasta toi mieleesi.
        "

        Kerron.

        Se herättää mieleeni ajatuksen, että vähättelet "P on NP?"-ongelman käytännön merkitystä, vaikka olet täällä painottanut tällaisten asioiden käytännön merkitystä kokoajan. No, avauksessani otsikossa luki Complexity Theory eikä COMPUTATIONAL Complexity Theory, mutta itse avauksesta kyllä kävi ilmi, että tarkoitin juuri "P on NP?"-asioita.

        Senkin ymmärsin, että kauppamatkustajan ongelmaan täysin yleisesti toimivaa ja nopeaa algoritmia ei voi olla missään kirjastossa, sillä se olisi sensaatio. Senkin ymmärsin, että NP-täydellistenkin ongelmien kohdalla tunnetaan nopeita algoritmeja, kunhan syöte ei ole täysin yleinen vaan se on rajattu tiettyyn erikoismuotoon. Usein syöte voi olla yleinenkin ja algoritmi silti nopea, kunhan tyydytään optimaalisen ratkaisun sijasta likimääräiseen "melko hyvään" ratkaisuun. Tämä kuitenkin vaihtelee ongelmasta toiseen, ja olin ymmärtävinäni, että on jopa todistettu, että tiettyihin NP-täydellisiin ongelmiin ei voi olla edes nopeita ja tarkkoja likimääräisalgoritmeja, ELLEI P=NP, mitä emme tiedä. Toisiin taas tunnetaan nopeita ja tarkkoja likimääräisalgoritmeja. Kaikki NP-täydelliset ongelmat eivät siis välttämättä ole pohjimmiltaan täysin samanlaisia.

        Siis, löytämällä polynomiaikainen täysin yleinen algoritmi NP-täydelliselle ongelmalle tuottaisi tavan ratkaista monta käytännössä tärkeää ongelmaa täysin tarkasti ja nopeasti, vaikka joillakin ongelmilla voisi käydä niin, että polynomiaikaisesuudesta huolimatta algoritmi ei olisi käytännössä nopea, sillä eksponentti voisi olla liian iso.

        Sensijaan "P ei ole NP"-todistaminen olisi tietyssä mielessä ikävä tulos, mutta ymmärsin, että silläkin olisi käytännön hyötyä ainakin sikäli, että sitä voitaisiin kenties hyödyntää kryptografiassa osoittamaan, että tietyt menetelmät ovat varmoja. Toki nytkin jo kryptografia käyttää erilaisia salauksia, mutta niiden täydellistä varmuutta ei ole kyetty todistamaan, vaan luotto menetelmiin perustuu pitkälti siihen, että suuresta työstä huolimatta kukaan ei ole kyennyt niitä murtamaan.

        Molemmista vaihtoehdoista (=todistus sille, että "P on NP" tai "P ei ole NP") voitaisiin siis kaivaa käytännön hyötyäkin.

        Ähäkutti!-huudahduksesi kuulosti jo vähän riidan haastamiselta.

        Olet arrogantti persereino


    • matho

      Liittyy aivan oleellisesti, sillä kompleksisuudella voi tehdä vaihtoa muistin määrän ja prosessorin suoritustehon väliltä. Algoritmeja voidaan siis laskea auki, jos muisti riittää tai päinvastoin(mikä on huomattavasti vaikeampaa), puristaa aivan h***in moinen algoritmi, jos muisti käy vähiin(TAI todistaa, ettei mahdu pienempään tilaan!). Eli jos koodailee perus-pc:llä, niin eipä juuri tarvi vaivata päätään, kunhan vaan muistaa käyttää valmiita algoritmeja, jos haut on suurta tietomäärää koskevia.

      • ITikka

        Periaatteessa näin.

        Käytännössä: jos se on liian hidas niin "add more hardware".


      • Bin-Search
        ITikka kirjoitti:

        Periaatteessa näin.

        Käytännössä: jos se on liian hidas niin "add more hardware".

        Ja jos se on liian nopea niin "add more adware".


      • HämmästysHarrastaja
        Bin-Search kirjoitti:

        Ja jos se on liian nopea niin "add more adware".

        Bin-Search,

        oletko vielä täällä?

        Kysyisin yhtä asiaa liittyen antamaasi käytännön ohjelmointiesimerkkiin, joka kyllä oli sinänsä mielenkiintoinen.


    • Bin-Search

      HämmästysHarrastaja, kysy mitä vaan, vastaan mitä vaan.

    • HämmästysHarrastaja

      Bin-Search,

      kerroit

      "
      ...
      Ohjelmoija on sijoittanut valmiin O(n) -aikavaatimusluokan algoritmin ns. tiukan loopin sisälle, jossa se aiheuttaa redundantin viiveen ruudunpäivitykseen. Tuloksena on annos ****** matemaatikko-ohjelmoijan toimesta ohjelmoijan niskaan. Ongelma oltaisiin voitu välttää, jos kyseinen ohjelmoija olisi ymmärtänyt pysyä poissa projektin aikakriittisistä osista kompetenssipuutteensa takia. Ohjelmoijaa hävettää nyt rutkasti, sillä hän on joutunut tilanteeseen, jossa vuosienkaan harrastepohjainen "koodauskokemus" ei auttanut. Jatkossa kaikki hänen muutoksensa joutuvat silmätikuiksi projektissa. Hänen olisi pitänyt ymmärtää edes vähän mitä algoritmien kompleksisuus tarkoittaa ja yleensäkin ottaa selville algoritmin kompleksisuus. KooderiKoulussaX hänelle asiasta sentään olisi mainittu etukäteen.
      ...
      "

      Olisiko KooderiKouluX tuossa nyt sitten häntä auttanut, jos tarkoitat KooderiKouluX:llä jotain tavallisen/teknillisen yliopiston algoritmiikan peruskurssia. Tiedän, että tällaisissa kursseissa käsitellään perustietorakenteita ja eri rakenteiden, esim. graafit, algoritmeja ja analysoidaan niiden kompleksisuutta, mutta kovin syvällistä ymmärtämystä kurssin käynyt ei välttämättä saavuta ja lisäksi nuo jutut unohtuvat helposti kurssin käymisen jälkeen. Olisiko siis jostain yliopiston tarjoamasta algoritmiikan peruskurssista ollut hyötyä tuolle koodarille sikäli, että hän JUURI SEN KURSSIN ANSIOSTA olisi osannut toimia tuossa tilanteessa oikein.

      Ajan takaa sitä, että ehkä häntä olisi tuossa pikemminkin auttanut käytännön kooderikoulu, eli hän olisi työssään aiemmin kohdannut tuollaisen tiukan loopin ja hän olisi jonkun muun tekemän esimerkin perusteella osannut tuossa menetellä oikein, vaikka hän ei olisi edes välttämättä ymmärtänyt miksi se toinen tapa on parempi. Tarkoitan tässä eräänlaista "kirjastoratkaisua", jossa kokemus - eikä niinkään oma päättely - olisi kertonut miten tuossa tilanteessa pitää menetellä. Arvelen, että kuvaamasi tiukka looppi on noissa aika standarditilanne, mutta tietoa minulla ei tästä ole, joten korjaa, jos olen väärässä.

      Siis, lieneekö todella niin, että monikaan tuollaisia esim. pelimoottoreita ohjelmoiva kehittää siinä uutta aiempaa parempaa algoritmiikkaa, vai onko pikemminkin niin, että hekin pikemminkin aiemmin näkemiensä ratkaisujen perusteella tietävät miten kussakin tilanteessa tilanteessa pitää menetellä, mutta tällaisiin tilanteisiin liittyvä käytännön kokemus nyt vaan sattui puuttumaan kuvaamaltasi ohjelmoijalta. Eihän kukaan voi tietää kaikesta kaikkea edes vuosienkaan kokemuksen jälkeen.

      Vuosien käytännön kokemus opettanee paremmin laittamaan oikean algoritmin oikeaan paikkaan kuin joku jotku joskus käydyt pari algoritmiikan kurssia, vaikka sihen käytännön kokemukseen ei sitten sisältyisi alkeellisintakaan kompleksisuusanalyysin ymmärrystä saati sitten tietoa sellaisista vielä teoreettisemista aiheista kuten NP-jutut.

      Toivottavasti ymmärrät edes jotenkin mitä yritän sanoa... (Jos et, vikaa on kyllä minussakin.)

      • Bin-Search

        Baseline on tämä: koulussa/opistossa/yliopistossa on lupa kämmäillä, koska se on paikka oppimiselle. Siellä se on jopa suotavaa ja tässä tarinassa tulee lopussa yllättävä käänne.

        Tosielämässä tällainen sössiminen voi maksaa hitosti jatkossa, esimerkiksi siten että et saa työhaastattelukutsua open source engineä päätoimisesti koodaavalta yritykseltä. Toki profiili on vain rajatusti julkinen avoimen koodin projekteissa, mutta jos laitat työhakemuksessa viittaukseksi oman työsi projektissa X ja sitä tutkiessa paljastuu lokimerkinnöistä useita kämmejä, perustelu ammattitaidosta on vailla pohjaa.

        Open source projekti ei suinkaan ole se ainoa paikka. Vuosienkin käytännön kokemuksen on nähty murenevan kritiikin alla - olen ihan vierestä katsonut, kun vanha koira savustuu ulos ankaralla kielenkäytöllä työn laadusta... vuosien valittamisen jälkeen. Riittävä tapa tehdä asioita joskus ei välttämättä ole riittävä tänään. Huonoista tavoista on vieläpä hankalaa oppia ulos ja tästä oli kysymys tuossa vanhassa koirassa. Tämä on juurikin sellainen ansa, johon itsekeskeinen kokenutkin ohjelmoija voi sortua ajattelussaan. "Olen näin tehnyt aina ja se on toiminut."

        Hän otti lopputilin muutama kuukausi jälkeenpäin. Suurimpia virheitä tällä koiralla oli kategorinen konventioiden unohtaminen ja "mitensattuu kommentoiminen." Eli ei ollut edes kyse varsinaisesta logiikasta joka kerta. Lähti pois sanoen työn mielekkyyden muuttuneen heikoksi.

        Ja nyt se käänne... Pelit ovat tunteita herättävä aihe jo sinänsä, mutta kun kyse on frames per secondista, niin puhutaan jo uskonnosta. Suuri osa parhaista pelikoodereista itse asiassa on juuri näitä itseoppineita. Osa heistä järjestää nykyään alan koulutustakin... eli kouluun mars, niin voit oppiakin jotain asiantuntijoilta. Siellä vuosien kokemus puhuu ja antaa epäonnistua, sillä tarkoitus on tehdä osaajia toki virheiden kautta. Ne parhaat tyypit poimitaan töihin ja muut valmistuneet jäävät tyhjätaskuiksi.

        Mutta mitä kompleksisuuteen tulee, niin siitä opin itse vasta yliopistossa ja käytännön harjoituksissa käytiin myös ihan konkreettisesti asiaa läpi. Rinnakkainen ohjelmointi on toinen samanlainen tärkeä aihe. Töissä tuli vastaan eräs erittäin hyvä ohjelmoija, joka oli vuosia koodannut c :lla vaikka mitä systeemejä ihan kotikutoisesti. Töissä emme c :aa käyttäneet. Sitten tuli se päivä, ettei hän ymmärtänyt koodinsa bugeja, sillä ei ollut koskaan perehtynyt säikeisiin. Alkoi mahdoton sarja epäonnistuneita yrityksiä, kunnes apua pyytäessään jouduin toteamaan hänelle, että kyseessähän on rinnakkainen ohjelma ja siellä säännöt ovat erit. Hän oli vähän epäuskoinen, mutta ainoa vinkkini oli että "opiskele aihe ensin ja lopeta heti omien ratkaisujen keksiminen." Olimme samassa yliopistossakin, mutta säikeitä käsittelevä kurssi ei ollut pakollinen - se oli vaikea ja harva kävi sen. Kävin itse kurssin, koska arvasin tulevat hyödyt moniydinprosessorien yleistyessä. Ja se kannatti.


      • Turhaan kävit
        Bin-Search kirjoitti:

        Baseline on tämä: koulussa/opistossa/yliopistossa on lupa kämmäillä, koska se on paikka oppimiselle. Siellä se on jopa suotavaa ja tässä tarinassa tulee lopussa yllättävä käänne.

        Tosielämässä tällainen sössiminen voi maksaa hitosti jatkossa, esimerkiksi siten että et saa työhaastattelukutsua open source engineä päätoimisesti koodaavalta yritykseltä. Toki profiili on vain rajatusti julkinen avoimen koodin projekteissa, mutta jos laitat työhakemuksessa viittaukseksi oman työsi projektissa X ja sitä tutkiessa paljastuu lokimerkinnöistä useita kämmejä, perustelu ammattitaidosta on vailla pohjaa.

        Open source projekti ei suinkaan ole se ainoa paikka. Vuosienkin käytännön kokemuksen on nähty murenevan kritiikin alla - olen ihan vierestä katsonut, kun vanha koira savustuu ulos ankaralla kielenkäytöllä työn laadusta... vuosien valittamisen jälkeen. Riittävä tapa tehdä asioita joskus ei välttämättä ole riittävä tänään. Huonoista tavoista on vieläpä hankalaa oppia ulos ja tästä oli kysymys tuossa vanhassa koirassa. Tämä on juurikin sellainen ansa, johon itsekeskeinen kokenutkin ohjelmoija voi sortua ajattelussaan. "Olen näin tehnyt aina ja se on toiminut."

        Hän otti lopputilin muutama kuukausi jälkeenpäin. Suurimpia virheitä tällä koiralla oli kategorinen konventioiden unohtaminen ja "mitensattuu kommentoiminen." Eli ei ollut edes kyse varsinaisesta logiikasta joka kerta. Lähti pois sanoen työn mielekkyyden muuttuneen heikoksi.

        Ja nyt se käänne... Pelit ovat tunteita herättävä aihe jo sinänsä, mutta kun kyse on frames per secondista, niin puhutaan jo uskonnosta. Suuri osa parhaista pelikoodereista itse asiassa on juuri näitä itseoppineita. Osa heistä järjestää nykyään alan koulutustakin... eli kouluun mars, niin voit oppiakin jotain asiantuntijoilta. Siellä vuosien kokemus puhuu ja antaa epäonnistua, sillä tarkoitus on tehdä osaajia toki virheiden kautta. Ne parhaat tyypit poimitaan töihin ja muut valmistuneet jäävät tyhjätaskuiksi.

        Mutta mitä kompleksisuuteen tulee, niin siitä opin itse vasta yliopistossa ja käytännön harjoituksissa käytiin myös ihan konkreettisesti asiaa läpi. Rinnakkainen ohjelmointi on toinen samanlainen tärkeä aihe. Töissä tuli vastaan eräs erittäin hyvä ohjelmoija, joka oli vuosia koodannut c :lla vaikka mitä systeemejä ihan kotikutoisesti. Töissä emme c :aa käyttäneet. Sitten tuli se päivä, ettei hän ymmärtänyt koodinsa bugeja, sillä ei ollut koskaan perehtynyt säikeisiin. Alkoi mahdoton sarja epäonnistuneita yrityksiä, kunnes apua pyytäessään jouduin toteamaan hänelle, että kyseessähän on rinnakkainen ohjelma ja siellä säännöt ovat erit. Hän oli vähän epäuskoinen, mutta ainoa vinkkini oli että "opiskele aihe ensin ja lopeta heti omien ratkaisujen keksiminen." Olimme samassa yliopistossakin, mutta säikeitä käsittelevä kurssi ei ollut pakollinen - se oli vaikea ja harva kävi sen. Kävin itse kurssin, koska arvasin tulevat hyödyt moniydinprosessorien yleistyessä. Ja se kannatti.

        Meinaan kurssin. Mumbaista ja Bangaloresta saa koodinvääntäjiä kympillä päivä. Money talks, ei auta mikään, suomalaisilla isoilla IT-taloilla offshorausaste alkaa heilua siinä 70%:ssa pahimmilaan.


      • Bin-Search
        Turhaan kävit kirjoitti:

        Meinaan kurssin. Mumbaista ja Bangaloresta saa koodinvääntäjiä kympillä päivä. Money talks, ei auta mikään, suomalaisilla isoilla IT-taloilla offshorausaste alkaa heilua siinä 70%:ssa pahimmilaan.

        Taas joku uskomaton prosenttipelle äänessä. You are the 99%.

        Olisikohan kuitenkin niin että suuri osa työstä tehdään sen takia ulkomailla, kun suurin osa ihmisistäkin on maailmassa ulkomailla. Sulla on mennyt puurot ja vellit nyt sekasin. 70% sinustakin on vettä, joka on tärkeässä osassa tuon aivopierun rakentamisessa.

        Minä olen kuullut useaan otteeseen ettei luottamustehtäviä yksinkertaisesti voi antaa noille Intian-insinööreille. Niille, jotka ovat luottamisen arvoisia ovatkin sitten arvokkaampia ja he ovat tietoisempia länsimaisesta kellonlyömästäkin. Web-sivuja intiasta? Joo senkus tilaat. Niitä jannuja johtava suomalainen saa reilua palkkaa, koska alaiset ovat niin alipalkattuja. Siksi meitä on niin vähän täällä pohjolassa. Vaan harvinainen ei ole se päivä, kun Bangaloren pojat päättävät vain lähteä työpaikalta kesken päivän ilmoittamatta mitään. Juttuja on kuultu useammalta suunnalta, että tällainen on persiistä. Pankit eivät edes harkitse noita offwhore-projekteja. Mitäs sitten teet, kun projekti seisoo?


    • Hmmphh

      Tiedon toimittama terveydenhoidon järjestelmä tuli ryskyen alas tuotannossa, kun siinä ei oltu osattu huomioida miten datan määrän kasvu hidastaa järjestelmän toimintaa.

      Kun ei ymmärrä perusteita niin ei osaa valita hakurakennetta tai edes ymmärrä, että niillä on eroa.

      Kun tietokantojen optimoijatkin toimivat usein mystisellä tavalla niin siinä on asiansa tuntevallakin joskus hiki otsassa ihmetellessä, että miksi se on niin hidas.

      Tietokannoissa ei riitä edes laskennallisen kompleksisuuden analysointiosaaminen vaan pitää osata myös rakennesuunnittelun teoria.

      Hyvinhän nuo isot talot näyttävät myyvän paskaa vaikkeivat näitä juttuja osaakaan. Hyvinhän se käy, kun ostaja on vielä tyhmempi.

      Niin että jollet osaa niin paikkasi on ostajan (kusetettavan) puolella.

      • Bin-Search

        Aploderar för Tieto! :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Taitaa jäädä kotimaiset mansikat ostamatta

      Kotimainen mansikka on niin kallista, että en ole vielä ainuttakana maistanut. Jos hinta pysyy näin korkealla niin tästä
      Ruoka ja juoma
      61
      1725
    2. Mikä on loppuelämäsi suunnitelma

      Kaivattuasi kohtaan? Olet päättänyt jotain?
      Ikävä
      123
      1344
    3. Sinkkumiehet hukkaavat tärkeän ässän hihastaan kun

      ...eivät suostu kavereiksi naisten kanssa. Mikä voi olla heillä syynä? Hyväksyvät vain naisen, joka suorastaan anelee sa
      Ikävä
      127
      1270
    4. Uskaltaisitko vielä

      Lähestyä vai et kaivattuasi?
      Ikävä
      140
      1064
    5. Keitä täällä on??

      Kertokaa nimenne!! 🤔
      Ikävä
      101
      907
    6. "Kaikkien miesten asia" - kampanja on alkanut

      Miehillä on naisiin kohdistuvan väkivallan lopettamisessa merkittävä rooli. Ei riitä, ettei itse tee väkivaltaa. Miesten
      Maailman menoa
      339
      849
    7. Tiedät, että en voi enää laittaa viestiä

      Aikaa kulunut. Eikä se näyttäisi enää luontevalta vastata näin pitkän ajan jälkeen. Tiedän myös, että sinä et enää lait
      Ikävä
      82
      734
    8. Lautakunta käsittelee Iisalmen kulttuuri- ja vapaa-aikajohtajan virkasuhteen purkua koeajalla:

      Lautakunta käsittelee Iisalmen kulttuuri- ja vapaa-aikajohtajan virkasuhteen purkua koeajalla: "Aina valinta ei mene nap
      Iisalmi
      55
      664
    9. Kun kohtaatte rakkauden, tarttukaa siihen

      Toimisinko jälkiviisaana toisin? Varmasti. Vaikka silloin kuvittelin tekeväni, niin kuin on oikein. Mahdollisimman siist
      Ikävä
      50
      653
    10. Lienee aika luopua siitä kaikesta

      mitä meillä ikinä olikaan. Hassua, koska juuri mitään ei ole edes ollutkaan. En vaan jaksa tätä mahdotonta juttua enää j
      Ikävä
      65
      625
    Aihe