(IV) Kombinatoryka i ekspansja sieci

Kombinatoryka to temat dotyczący kombinacji, które można utworzyć ze zbioru wartości dyskretnych. Kombinacje to wszystkie kombinacje, które są możliwe z dyskretnego zbioru wartości dla danej liczby elementów w każdej kombinacji, w których żaden element nie jest powtarzany. Permutacje to zbiór wszystkich możliwych permutacji danego rozmiaru z dyskretnego zbioru elementów. Rozwijanie siatki polega na rozszerzaniu różnych zestawów elementów, tak aby każdy element każdego zestawu był powiązany z każdym elementem innych zestawów. Prawdopodobnie najłatwiejszym sposobem sprawdzenia, na czym polegają kombinacje, permutacje i ekspansja siatki, jest pokazanie kilku przykładów. Trzy istotne funkcje to combn(), permsn() – które są  w bibliotece prob – i expand.grid. Funkcja combn() przyjmuje argumenty x, m, FUN, simplify i … . Argument x to dowolny obiekt, który można przekształcić w wektor i jest to dyskretny zbiór, z którego tworzone są kombinacje. Argument m to liczba elementów, które należy uwzględnić w każdej kombinacji. Argument FUN jest opcjonalną funkcją do działania na elementach x. Argument simplify jest logiczny. Jeśli TRUE, zwracana jest tablica lub macierz. Jeśli FALSE, zwracana jest lista. Wartość domyślna to TRUE. Argument… zawiera argumenty dla FUN. Na przykład:

> combn(1:3,2)

[,1] [,2] [,3]

[1,] 1 1 2

[2,] 2 3 3

Zwróć uwagę, że kombinacje są w kolejnych wierszach. Funkcja permsn () znajduje się w pakiecie prob. Ponieważ pakiet nie jest jednym z pakietów instalowanych domyślnie, może być konieczne zainstalowanie pakietu. Jeśli pakiet jest zainstalowany, pakiet musi być załadowany biblioteką (prawdopodobnie)

Funkcja permsn() przyjmuje tylko dwa argumenty, x i m, które są takie, jak opisano dla combn (). Oto przykład dla permsn():

> permsn(1:3,2)

[,1] [,2] [,3] [,4] [,5] [,6]

[1,] 1 2 1 3 2 3

[2,] 2 1 3 1 3 2

Zwróć uwagę, że permutacje znajdują się w wierszach. Zauważ również, że chociaż combn() ma tylko kombinację (1,2), permsn() zawiera zarówno (1,2), jak i (2,1) i tak dalej. Funkcja permsn() zwraca macierz. Funkcja expand.grid() przyjmuje obiekty jako argumenty. Obiekty są oddzielone przecinkami i muszą mieć możliwość przekształcenia ich w wektor. Funkcja zwraca wektory skrzyżowane ze sobą w ramce danych. Na przykład:

> expand.grid(1:2,3:4,5:6)

   Var1 Var2 Var3

1 1 3 5

2 2 3 5

3 1 4 5

4 2 4 5

5 1 3 6

6 2 3 6

7 1 4 6

8 2 4 6

Tutaj kombinacje są w rzędach. Więcej informacji o combn (), permsn () i expand.grid () można znaleźć, wpisując ?combn,?prob::permsn i ?expand.grid po znaku zachęty R. Zauważ, że jeśli prob nie jest zainstalowany, drugie polecenie nie zadziała

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *