As most real-world problemas are dynamic, it is not sufficient to "solve" the problem for the some (current) scenario, but it is also necessary to modify the current solution due to various changes in the environment (e. g., machine breakdowns, sickness of employees, etc.). Thus it is important to investigate properties of adaptive algorithms which do not require re-start every time a change is recorded. In this paper such non-stationary problems (i. e., problems, which change in time) are considered. We describe different types of changes in the environment. A new model for non-stationary problems and a classifcation of these problems by the type of changes is proposed. We apply evolutionary algorithms in non-stationary problems. We extend the evolutionary algorithm by two mechanisms dedicated to non-stationary optimization: redundant genetic memory structures and a diversity maintenance technique -random inmigrants mechanism. We report on experiments with evolutionary optimization employing two mechanisms (separately and togheter); the results of experiments are discussed and some observations are made.