Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Algoritmo Java] combinazioni di coppie

    Salve a tutti,
    devo progettare un piccolo algoritmo, da realizzare in java, che però mi sta facendo scervellare.

    Mettiamo che io ho un insieme formato da K nodi e devo calcolarmi le combinazioni di nupple di questi K nodi, mi speigo meglio:

    Se ho K= 1 ovvero un solo nodo X1 ed ho N=2 quindi sono delle coppie, io devo crearmi (considerando anche il caso non ho quel nodo):

    ({},{})
    ({X1},{}), ({},{X1})
    ({X1},{X1})

    Da notare che: Ho bisogno che le combinazioni di coppie siano ordinate, al livello 0 ho solo 0 nodi su entrambe le coppie, al livello in totale 1 solo nodo e così via. Ovviamente il tutto mi serve generalizzato per qualsiasi K e qualsiasi N.

    Voi cosa consigliereste di fare?

    La strada che stavo prendendo, ma in cui mi sto incasinando, è di calcolarmi l'insieme delle parti dell'insieme di inizio e poi calcolarmi tutte le possibili combinazioni di coppie andando ad aggiungere un nodo per volta.

    Vi ringrazio in anticipo per la pazienza,
    Neptune.
    Ultima modifica di Neptune; 27-02-2014 a 16:43
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Per capirci meglio quello che avrei bisogno di creare in caso di K=2 e N=2 è questo:
    https://dl.dropboxusercontent.com/u/8098999/hasse.png

    Grossomodo quello che voglio crearmi è una diagramma di hasse dove i nodi sono nupple di insiemi:
    http://en.wikipedia.org/wiki/Hasse_diagram

    Dove sostanzialemnte ad un livello i (iniziando a contare da zero) ho esattamente i elementi in totale su entrambi gli insiemi che formano il nodo. Inoltre ci sono archi solo tra livelli contigui e solo se è verificato il seguente operatore di contenimento:

    codice:
    ni = (S1i,S2i) C nj = (S1j,S2j) solo se S1i C S1j AND S21 C s2j

    E' importante riuscire a procedere alla creazione dei nodi per livello in modo che, arrivato ad un determinato livello, si possano applicare delle regole di pruning per non calcolare determinati "cammini" nei livelli successivi. Questo perchè il numero di nodi generati da questo algoritmo è super esponenziale ovvero è 2^(k*n).
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.