# module `algorithm.classroom`¶

## Short summary¶

module `code_beatrix.algorithm.classroom`

Positions in a classroom

source on GitHub

## Functions¶

function

truncated documentation

`distance`

Computes the distance between two positions.

`find_best_positions_greedy`

Finds the best position for name, explore all positions.

`measure_positions`

Returns the sum of edges weights.

`optimize_positions`

Optimizes the positions.

`plot_positions`

Draws positions and first names into a graph.

`random_positions`

Draws random position for some person in a classroom.

## Documentation¶

Positions in a classroom

source on GitHub

`code_beatrix.algorithm.classroom.``distance`(p1, p2)[source]

Computes the distance between two positions.

Paramètres
• p1 – position 1

• p2 – position 2

Renvoie

distance

source on GitHub

`code_beatrix.algorithm.classroom.``find_best_positions_greedy`(positions, edges, name)[source]

Finds the best position for name, explore all positions.

Paramètres
• positions – dictionary `{ name : (x, y) }`

• edges – list of affinities as a dictionary `{ name: [names] }`

• name – name to optimize

Renvoie

list of positions

source on GitHub

`code_beatrix.algorithm.classroom.``measure_positions`(positions, edges)[source]

Returns the sum of edges weights.

Paramètres
• positions – dictionary `{ name : (x, y) }`

• edges – list of affinities `(name1, name2)`

Renvoie

distance

source on GitHub

`code_beatrix.algorithm.classroom.``optimize_positions`(positions, edges, max_iter=100, fLOG=<function noLOG>, plot_folder=None)[source]

Optimizes the positions.

Paramètres
• positions – dictionary `{ name : (x, y) }`

• edges – list of affinities `(name1, name2)`

• max_iter – maximum number of iterations

• plot_folder – if not None, saves images into this folder

Renvoie

positions, iterations

source on GitHub

`code_beatrix.algorithm.classroom.``plot_positions`(positions, edges=None, ax=None, **options)[source]

Draws positions and first names into a graph.

Paramètres
• positions – list of 3-uple (name, x, y)

• ax – axis

• edges – edges

• options – options for matplotlib

Renvoie

ax

First position: 0

source on GitHub

`code_beatrix.algorithm.classroom.``random_positions`(nb, names=None)[source]

Draws random position for some person in a classroom.

Paramètres
• nb – number of persons

• names – names (None for default)

Renvoie

list of 3-uple(name, x, y)

source on GitHub