Checks if a knowledge structure is

  • forward- or backward-graded in any item;

  • downgradable.

is.forward.graded(K)

is.backward.graded(K)

is.downgradable(K)

Arguments

K

a state-by-problem indicator matrix representing the knowledge structure. An element is one if the problem is contained in the state, and else zero. K should have non-empty colnames.

Details

A knowledge structure \(K\) is forward-graded in item \(q\), if \(S \cup \{q\}\) is in \(K\) for every state \(S \in K\). A knowledge structure \(K\) is backward-graded in item \(q\), if \(S - \{q\}\) is in \(K\) for every state \(S \in K\). See Spoto, Stefanutti, and Vidotto (2012).

A knowledge structure \(K\) is downgradable, if its inner fringe is empty only for a single state (the empty set). See Doignon and Falmagne (2015).

Value

For forward- and backward-gradedness, a named logical vector with as many elements as columns in K.

For downgradability, a single logical value.

References

Doignon, J.-P., & Falmagne, J.-C. (2015). Knowledge spaces and learning spaces. arXiv. doi:10.48550/arXiv.1511.06757

Spoto, A., Stefanutti, L., & Vidotto, G. (2012). On the unidentifiability of a certain class of skill multi map based probabilistic knowledge structures. Journal of Mathematical Psychology, 56(4), 248--255. doi:10.1016/j.jmp.2012.05.001

See also

Examples

K <- as.binmat(c("0000", "1000", "1100", "1010", "0110", "1110", "1111"))
is.forward.graded(K)                  # forward-graded in a
#>     a     b     c     d 
#>  TRUE FALSE FALSE FALSE 
is.backward.graded(K)                 # not backward-graded in a
#>     a     b     c     d 
#> FALSE FALSE FALSE  TRUE 
is.downgradable(K)                    # not downgradable
#> [1] FALSE
all(K[, "a"] | getKFringe(K)[, "a"])  # every K or outer fringe contains a
#> [1] TRUE