Because of a lapse in government funding, the information on this website may not be up to date, transactions submitted via the website may not be processed, and the agency may not be able to respond to inquiries until appropriations are enacted. The NIH Clinical Center (the research hospital of NIH) is open. For more details about its operating status, please visit cc.nih.gov. Updates regarding government operating status and resumption of normal operations can be found at OPM.gov.

Lexical Tools

SPT - Permutation Design

I. Introduction
This section describes the method to find all permutations with synonyms from pattern permutation results from the previous section.

II. Algorithm

  • Go through all elements (synonym list) of the inList
    • In the order from the last to the first (to looks nicer)
    • Get the synonyms list of each element
      • Duplicate the current permutation list to the number of synonym list
      • Add all synonyms to the beginning of permutation list

III. Java Classes & Method

  • Permutation.java: a Java class for finding all permutation
  • public Vector<String> GetPermutation(Vector<Vector<String>> inList)

IV. Examples

  • Inputs:

    Pattern 1
    word|synonyms
    who|
    let|
    dog|canine|k9|bull dog|
    and|
    cat|feline|
    out|

    Pattern 2
    word|synonyms
    who|
    let|
    dog and cat|pets|puppy and kitty|
    out|

  • Algorithm Walk Through:

    Pattern-Stepcurrent elementpermutation
    1-1out|
    • out
    1-2cat|feline|
    • cat out
    • feline out
    1-3and|
    • and cat out
    • and feline out
    1-4dog|canine|k9|bull dog|
    • dog and cat out
    • dog and feline out
    • canine and cat out
    • canine and feline out
    • k9 and cat out
    • k9 and feline out
    • bull dog and cat out
    • bull dog and feline out
    1-5let|
    • let dog and cat out
    • let dog and feline out
    • let canine and cat out
    • let canine and feline out
    • let k9 and cat out
    • let k9 and feline out
    • let bull dog and cat out
    • let bull dog and feline out
    1-6who|
    • who let dog and cat out (original input)
    • who let dog and feline out
    • who let canine and cat out
    • who let canine and feline out
    • who let k9 and cat out
    • who let k9 and feline out
    • who let bull dog and cat out
    • who let bull dog and feline out

    Pattern-Stepcurrent elementpermutation
    2-1out|
    • out
    2-2dog and cat|pets|puppy and kitty|
    • dog and cat out
    • pets out
    • puppy and kitty out
    2-3let|
    • let dog and cat out
    • let pets out
    • let puppy and kitty out
    2-4who|
    • who let dog and cat out (original input)
    • who let pets out
    • who let puppy and kitty out

  • Outputs:
    • who let dog and cat out
    • who let dog and feline out
    • who let canine and cat out
    • who let canine and feline out
    • who let k9 and cat out
    • who let k9 and feline out
    • who let bull dog and cat out
    • who let bull dog and feline out
    • who let pets out
    • who let puppy and kitty out