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)

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)

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)

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)

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)

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)

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