Post date: May 08, 2021 6:11:37 PM
A perennial concern of algorithm analysis is computational efficiency, measured in milliseconds or perhaps required computational resources, commonly including
average and maximum completion time,
memory needed for the code, inputs, outputs,
power requirements,
bandwidth needs,
temporary and long-term storage,
response time.
But as computer scientists well know, efficiency is not the only consideration that matters in assessing an algorithm. Features such as
error recovery,
fault tolerance,
robustness,
reentrancy,
thread-safety,
generality,
shareability, and
approximation quality
are also important.
The humane algorithms project suggests a suite of new features be considered in evaluating algorithms and systems that interact with or affect humans as users, clients, programmers, owners, and other stakeholders. The project has informally identified several features including
Fairness (including appealability, transparency, ethics, social justice, privacy, accountability, and equity across diversity so self-driving cars don’t kill people of colour or pregnant women),
Workability (robustness, Bill Kahan, no aborts, recovery from errors, smooth control transfer, accommodation of diversity, user-friendliness, accepting user-specified units, no tyranny, standards for less obnoxious interfaces),
Risk-awareness (security, handling input imprecision, missing values, appreciation of tail risks, assumption checking, unit checking, recognition by the software when it is being used incorrectly, resistance to vandalism, gaming and misuse), and
Trackability (tracing, repeatability, justification trail, error correction, data updating, provenance).
But the abstraction of these ideas into an operational scheme for assessing algorithms will require focused research to address at least these questions:
Which objectives should define the humaneness of an algorithm?
How can the humaneness of an algorithm in terms of some objective be measured or assessed?
How should trade-offs between humane objectives be balanced?
How can compliance or performance in some humane objective be proven?
How can more humane algorithms be designed and deployed?
PERFORMANCE OF ALGORITHMS
Traditionally, algorithms have been judged only on their correctness and efficiency.
Humane algorithms are fair, friendly, secure, and transparent.
Good algorithms are those that are correct, efficient and humane.
In college I worked on a sleek time-shared DEC PDP-11 minicomputer which was a delight, but in graduate school, the department's computer was a behemoth MODCOMP IV fed by a punch card reader, which in contrast with the DEC machine seemed a bitter retreat in the nascent computer revolution. The MODCOMP had only recently been purchased with a grant from the state, because its flops per second were slightly better than its competitors. We learned the hard way that flops per second is not the only measure of computer performance that matters.