ratkaisualgoritmi halutaan

Muuttujilla X1, ...,Xn on joukko yhtäsuuruusehtoja muotoa " Xi = Xj " ja erisuuruusehtoja muotoa " Xi erisuuri Xj ". Kysymys: Onko kaikki ehdot mahdollista saada voimaan samanaikaisesti? Esitä tehtävälle tehokas ratkaisualgoritmi. (PS erisuuruusmerkkiä ei saanut kopioiduksi)
4511
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Haluan kyllä lisätietoja muuttujien määrästä ja ehtojen joukkojen koosta...

Äänestä
  • Tehtävä oli siinä.

    Äänestä

Tee nxn matriisi A, täytä luvuilla 0. Käy läpi säännöt. Jos sääntö on "Xi=/=Xj" niin tarkista onko Aij=0 tai -1, jos on niin aseta Aij=-1 ja Aji=-1 Muutoin ilmoita "Ratkaisu mahdoton" Jos sääntö on "Xi=Xj" tarkista onko Aij=-1 jos on niin ilmoita ratkaisu mahdoton. Muutoin aseta Aij=1, Aji=1 ja käy läpi sarake j ja jos Akj=1, niin aseta Aik=1 ja Aki=1 mikäli ne ovat 0 tai 1 muutoin ilmoita "Ei ratkaisua" Käy läpi rivi i ja jos Aik=1 niin aseta Ajk=1, Akj=1 mikäli ne ovat 0 tai 1 muutoin "Ei ratkaisua" Eli sinulla on koko ajan symmetrinen matriisi. Jossa arvoja 0, 1 tai -1. O ei tietoa, 1 =, -1 erisuuruus alkioiden välillä.

Äänestä
  • Muuten hyvä, mutta ottaakohan tuo tarpeeksi huomioon yhtäsuuruuden transitiivisuutta eli että jos A=B, B=C, C=D, niin A=D? Ensimmäisen kertaluvun transitiivisuus eli A=B, B=C => A=C tuossa taidetaan huomioida. Varmemmin menisi ehkä algoritmilla: 1. Käy läpi yhtäsuuruussäännöt Xi=Xj ja aseta aina Aij = Aji = 1. 2. Laske transiivinen sulkeuma vaikkapa Warshallin algoritmilla (ks. google). 3. Käy läpi säännöt Xi=/=Xj ja varmista, että kaikki vastaavat Aij ovat nollia. Tämä on kyllä aika tehoton algoritmi, koska Warshall on O(n^3), jossa n on erilaisten Xi-alkoiden määrä. Riippuen vähän ehtojen ja alkioiden määrien suhteesta tehokkaampi tapa voi olla laskea ekvivalenssiluokat yhtäsuurusrelaatiolle ja tarkistaa että erisuuruudet kuuluvat eri luokkiin: 1. Merkitse kaikki yhtäsuuruusparit Xi=Xj union-find-rakenteessa (ks. google) ekvivalenteiksi. 2. Käy läpi kaikki parit Xi=/=Xj ja tarkista, että ne kuuluvat eri ekvivalenssiluokkiin. Tämä on aika paljon tehokkaampi algoritmi, en kyllä muista kompleksisuutta ulkoa.

    Äänestä

Kommentoi aloitusta


opeta minua kirjoitti:

Muuttujilla X1, ...,Xn on joukko yhtäsuuruusehtoja muotoa " Xi = Xj " ja erisuuruusehtoja muotoa " Xi erisuuri Xj ". Kysymys: Onko kaikki ehdot mahdollista saada voimaan samanaikaisesti? Esitä tehtävälle tehokas ratkaisualgoritmi. (PS erisuuruusmerkkiä ei saanut kopioiduksi)

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